{"componentChunkName":"component---src-templates-post-js","path":"/blog/coding-badcase","webpackCompilationHash":"c021816e17e59e08b77b","result":{"data":{"site":{"siteMetadata":{"keywords":["blog","ubug","tech blog","技术博客","playground"]}},"mdx":{"fields":{"title":"🖐 编程新手问题","tips":["我家主人也是一样的初学者，也是过来人呢！~"],"categories":["code"],"datetime":"2019-08-06 19:14:03","noFooter":false,"description":"带了一些实习生之后发现编程初学者和老鸟的区别，很多时候经验真的是很重要，在此记录下这些不同","plainTextDescription":"带了一些实习生之后发现编程初学者和老鸟的区别，很多时候经验真的是很重要，在此记录下这些不同\n","author":"Ubug","banner":{"childImageSharp":{"fluid":{"tracedSVG":"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='400'%20height='104'%3e%3cpath%20d='M0%2052v52h401V0H0v52m129-26l2%203c1%201%201%201-2%201s-5%202-3%203l2%203c1%203%201%203-1%203l-2%202%209%201h9v11l-3-2c-4-2-4-3%200-3l2-1-2-1-3-1-2-2c-2%200-3%201-3%202l-4%201-3%201%203%201c3%200%203%202-1%207s-2%207%202%202l3-2v3c0%204%200%204%203%204%202%200%202%200%202-4s0-4%202-3c1%202%202%202%202%201v6c3%200%206-7%207-14%202-10%203-9%203%204v10h6V52c0-9%200-11%202-11l1-1c0-2-1-2-5-2-6%200-6%200-6-3%200-2%200-3%202-3l5-1%204-1-2-2c-2-2-2-2-5-1l-7%202c-3%200-3%200-3%205%200%204%200%205-2%205s-3-1-1-3v-3l2-1c0-1-1-2-3-2l-3-1c1-2-6-4-7-3m60%201l-13%202-9%203%206%201c6%200%206%200%206%202s-1%202-6%202c-8%201-8%203%200%203h6v6h-7c-6%200-7%200-7%202l7%201h7v5c0%204%200%204-3%204-7%200-5%203%202%205%205%200%208-2%208-9v-5h7c9-1%2010-3%200-3h-7v-3c0-3%200-3%206-3l5-1c0-2-1-2-5-2-6%200-6%200-6-2%200-3%201-3%205-4%205%200%206-1%203-4-1-2-2-2-5%200m59%202l-3%2011c-2%207-2%208%200%206%202-1%202%200%202%208%200%209%200%209%202%209s3-1%203-15l1-15v12c0%2012%200%2013%202%2013s2-1%202-6%200-7%201-6l5-2c7-3%207-2%201%201-4%203-6%205-4%205%201%201%206-1%209-3%202-3%203-3%205-2%204%201%205%201%205-2%201-1%200-2-4-3l-4-1%202-4%204-3%201-1c0-2-1-2-6-2-6%200-7%200-6-1%200-2%200-2-2-2s-3%201-5%205c-1%204-2%205-2%203s-1-2-2-2c-2%201-2%200-1-2%200-3%200-4-2-4-3-1-3%200-4%203m-21%202l-4%2011-3%206-1-8v-7h-6v21l-4%203-4%202v2h5c2-2%204-2%204-1%202%202%2016%201%2017-1%202-1%202-5%201-8-1-4-3-4-3%201%200%203-1%204-4%204-6%200-7-1-3-5s8-11%2011-18c1-5%201-5-2-5-2-1-3-1-4%203'%20fill='%23573ede'%20fill-rule='evenodd'/%3e%3c/svg%3e","aspectRatio":3.861003861003861,"src":"/static/0ce7448fa1bdb466c91825cc26f6adbd/fef60/banner.png","srcSet":"/static/0ce7448fa1bdb466c91825cc26f6adbd/82675/banner.png 500w,\n/static/0ce7448fa1bdb466c91825cc26f6adbd/fef60/banner.png 1000w","srcWebp":"/static/0ce7448fa1bdb466c91825cc26f6adbd/d619e/banner.webp","srcSetWebp":"/static/0ce7448fa1bdb466c91825cc26f6adbd/7fe04/banner.webp 500w,\n/static/0ce7448fa1bdb466c91825cc26f6adbd/d619e/banner.webp 1000w","sizes":"(max-width: 1000px) 100vw, 1000px"}}},"bannerCredit":null,"slug":"/blog/coding-badcase","tags":["思考","协作","skills"]},"headings":[{"value":"Bad Case","depth":2},{"value":"1、假设成功编程","depth":3},{"value":"2、考虑的角度不同","depth":3},{"value":"3、发现错误的能力","depth":3},{"value":"3、文档搜索能力","depth":3},{"value":"4、项目对接","depth":3},{"value":"5、技能的方法问题","depth":3},{"value":"6、理论重要吗？","depth":3},{"value":"7、不习惯团队协作","depth":3},{"value":"8、兴趣和天赋","depth":3},{"value":"总结","depth":2}],"body":"const _excluded = [\"components\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\n/* @jsx mdx */\n\nconst _frontmatter = {\n  \"slug\": \"coding-badcase\",\n  \"title\": \"🖐 编程新手问题\",\n  \"date\": \"2019-08-06 19:14:03\",\n  \"author\": \"Ubug\",\n  \"description\": \"带了一些实习生之后发现编程初学者和老鸟的区别，很多时候经验真的是很重要，在此记录下这些不同\",\n  \"categories\": [\"code\"],\n  \"tags\": [\"思考\", \"协作\", \"skills\"],\n  \"banner\": \"./banner.png\",\n  \"tips\": [\"我家主人也是一样的初学者，也是过来人呢！~\"]\n};\nconst makeShortcode = name => function MDXDefaultShortcode(props) {\n  console.warn(\"Component \" + name + \" was not imported, exported, or provided by MDXProvider as global scope\");\n  return mdx(\"div\", props);\n};\nconst layoutProps = {\n  _frontmatter\n};\nconst MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  let {\n      components\n    } = _ref,\n    props = _objectWithoutProperties(_ref, _excluded);\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"hr\", null), mdx(\"blockquote\", null, mdx(\"p\", {\n    parentName: \"blockquote\"\n  }, \"\\u60F3\\u5206\\u4EAB\\u7684\\u662F\\u770B\\u5230\\u7ECF\\u9A8C\\u4E0D\\u8DB3\\u7684\\u5F00\\u53D1\\u521A\\u5165\\u95E8\\u65F6\\uFF0C\\u4F1A\\u9047\\u5230\\u7684\\u4E00\\u4E9B\\u95EE\\u9898\\uFF0C\\u80FD\\u770B\\u5230\\u7ECF\\u9A8C\\u8FD9\\u4E2A\\u4E1C\\u897F\\u662F\\u4E5F\\u5E76\\u4E0D\\u662F\\u6478\\u4E0D\\u7740\\uFF0C\\u8E29\\u7684\\u5751\\u591A\\u4E86\\u7ECF\\u9A8C\\u5C31\\u6765\\u4E86~~\")), mdx(\"hr\", null), mdx(\"p\", null, \"\\u5E76\\u4E0D\\u662F\\u4E00\\u4E2A\\u5F88\\u8001\\u9053\\u3001\\u5F88\\u6709\\u7ECF\\u9A8C\\u6216\\u8005\\u5F88\\u5389\\u5BB3\\u7684\\u5F00\\u53D1\\uFF0C\\u4F46\\u662F\\u9047\\u5230\\u4E86\\u5F88\\u591A\\u81EA\\u5DF1\\u4E4B\\u524D\\u72AF\\u8FC7\\u7684\\u95EE\\u9898\\u3002\\u867D\\u7136\\u516C\\u53F8\\u9879\\u76EE\\u4E0D\\u5927\\uFF0C\\u4F46\\u662F\\u4E5F\\u5E26\\u4E86\\u4E0D\\u5C11\\u5B9E\\u4E60\\u751F\\uFF0C\\u51E0\\u4E4E\\u90FD\\u662F\\u521D\\u5B66\\u8005\\uFF0C\\u9047\\u5230\\u5F88\\u591A\\u7F16\\u7A0B\\u65B0\\u624B\\u4F1A\\u72AF\\u7684\\u95EE\\u9898\\uFF0C\\u5F88\\u591A\\u65F6\\u5019\\u7ECF\\u9A8C\\u771F\\u7684\\u662F\\u5F88\\u91CD\\u8981\\u3002\\u66F4\\u591A\\u7684\\u65F6\\u5019\\u56E0\\u4E3A\\u6CA1\\u7ECF\\u9A8C\\uFF0C\\u5F88\\u591A\\u7B80\\u5355\\u7684\\u6982\\u5FF5\\u6216\\u8005\\u8C03\\u8BD5\\u8FC7\\u7A0B\\u5C31\\u4F1A\\u803D\\u8BEF\\u5F88\\u591A\\u7CBE\\u529B\\uFF0C\\u522B\\u4EBA\\u7684\\u4E00\\u4E2A\\u5C0F\\u65F6\\u4EFB\\u52A1\\uFF0C\\u5728\\u5F88\\u591A\\u7EC6\\u8282\\u4E0A\\u6D6A\\u8D39\\u65F6\\u95F4\\uFF0C\\u9020\\u6210\\u6548\\u7387\\u4F4E\\u4E0B\\u3002\"), mdx(\"blockquote\", null, mdx(\"p\", {\n    parentName: \"blockquote\"\n  }, \"ps: \\u65B0\\u624B\\u6307\\u7684\\u662F\\u7F16\\u7A0B\\u521A\\u5165\\u95E8\\uFF0C\\u5728\\u6CA1\\u6709\\u5B8C\\u6574\\u9700\\u6C42\\u8BF4\\u660E\\u6216\\u8005\\u6280\\u672F\\u6808\\u4E0D\\u719F\\u6089\\u7684\\u80CC\\u666F\\u4E0B\\uFF0C\\u800C\\u4E0D\\u4EC5\\u9650\\u4E8E\\u5DE5\\u4F5C\\u5E74\\u9650\\u5C11\\uFF0C\\u5F88\\u591A\\u5C0F\\u9879\\u76EE\\u6CA1\\u6709\\u5168\\u9762\\u7684\\u9700\\u6C42\\u6587\\u6863\\uFF0C\\u8FD8\\u76F4\\u63A5\\u9762\\u5411 c \\u7AEF\\uFF0C\\u5C31\\u4F1A\\u51FA\\u73B0\\u5F88\\u591A\\u6548\\u7387\\u4F4E\\u4E0B\\u7684\\u8E29\\u5751\\u3002\")), mdx(\"div\", {\n    \"style\": {},\n    \"'flex',\": \"\",\n    \"justifycontent:\": \"\",\n    \"'center'}}\": \"\"\n  }, \"\\n  \", mdx(\"withfigcaption\", {\n    parentName: \"div\",\n    \"title\": \"Coding\"\n  }, \"\\n    \", mdx(\"img\", {\n    parentName: \"withfigcaption\",\n    \"src\": \"https://fdb.ubug.io/storybook-videos/coding-crazy.gif\"\n  }), \"\\n  \")), mdx(\"h2\", null, \"Bad Case\"), mdx(\"h3\", null, \"1\\u3001\\u5047\\u8BBE\\u6210\\u529F\\u7F16\\u7A0B\"), mdx(\"p\", null, \"\\u65B0\\u624B\\u5728\\u505A\\u4E00\\u4E2A\\u529F\\u80FD\\u7684\\u65F6\\u5019\\uFF0C\\u5173\\u6CE8\\u70B9\\u5927\\u90E8\\u5206\\u662F\\u5982\\u4F55\\u6210\\u529F\\u5B9E\\u73B0\\u9700\\u6C42\\uFF0C\\u800C\\u4E0D\\u662F\\u505A\\u597D\\u529F\\u80FD\\u3002\"), mdx(\"p\", null, \"\\u5C31\\u5BFC\\u81F4\\u4E86\\u5F00\\u53D1\\u8C03\\u8BD5\\u7684\\u8FC7\\u7A0B\\u4E2D\\uFF0C\\u66F4\\u5F3A\\u8C03\\u7684\\u662F\\u80FD\\u591F\\u4ECE\\u5934\\u5230\\u4F4D\\u80FD\\u6210\\u529F\\u7684\\u5B9E\\u73B0\\u5168\\u90E8\\u4EA4\\u4E92\\uFF0C\\u6240\\u4EE5\\u9519\\u8BEF\\u7684\\u6355\\u83B7\\u3001\\u5904\\u7406\\u3001\\u63D0\\u9192\\u7B49\\u5904\\u7406\\u7ECF\\u5E38\\u6027\\u7684\\u88AB\\u5FFD\\u7565\\uFF0C\\u6240\\u4EE5\\u505A\\u51FA\\u6765\\u7684\\u4E1C\\u897F\\u9700\\u8981\\u989D\\u5916\\u82B1\\u7CBE\\u529B\\u8865\\u6F0F\\u6D1E\\u3002\"), mdx(\"p\", null, \"\\u6BD4\\u5982\\u5728\\u5F00\\u53D1\\u524D\\u7AEF\\u4E00\\u4E2A\\u5E94\\u7528\\u9875\\u9762\\u7684\\u8FC7\\u7A0B\\u4E2D\\uFF0C\\u9700\\u8981\\u83B7\\u53D6\\u6570\\u636E\\u3001\\u4ECE\\u672C\\u5730\\u7F13\\u5B58\\u8BFB\\u53D6\\u6570\\u636E\\u3001\\u83B7\\u53D6\\u6D4F\\u89C8\\u5668\\u67D0\\u4E9B\\u6570\\u636E\\u7B49\\uFF0C\\u4E00\\u822C\\u521D\\u5B66\\u8005\\u4F1A\\u76F4\\u63A5\\u5FC3\\u91CC\\u5047\\u8BBE\\u8FD9\\u4E9B\\u6570\\u636E\\u90FD\\u80FD\\u6210\\u529F\\u8BFB\\u53D6\\uFF0C\\u6216\\u8005\\u61D2\\u5F97\\u8003\\u8651\\uFF0C\\u6240\\u4EE5\\u9519\\u8BEF\\u90E8\\u5206\\u6CA1\\u6709\\u5B9E\\u73B0\\u3002\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-javascript\"\n  }, \"fetch('example.com').then(response => response.json()).then(data => {\\n    document.getElementById('container').innerHTML = data.message\\n})\\nconst divideBy = (a, b) => a / b\\ndivideBy(6, 2) === 3\\n\")), mdx(\"p\", null, \"\\u8001\\u9E1F\\u7684\\u505A\\u6CD5\\u4F1A\\u66F4\\u52A0\\u4E25\\u8C28\\uFF0C\\u6BCF\\u4E00\\u4E2A Promise \\u7684 catch \\u90FD\\u4F1A\\u6709\\uFF0C\\u670D\\u52A1\\u5668\\u8FD4\\u56DE\\u7684\\u6570\\u636E\\u90FD\\u8981\\u9A8C\\u8BC1 statusCode\\uFF0C\\u672C\\u5730\\u6D4F\\u89C8\\u5668\\u7684\\u517C\\u5BB9\\u6027\\u90FD\\u8981\\u8003\\u8651\\u3002\"), mdx(\"p\", null, \"\\u6BD5\\u7ADF\\u7ECF\\u624B\\u7684\\u9879\\u76EE\\u90FD\\u9700\\u8981\\u4E0A\\u7EBF\\uFF0C\\u5728\\u4E0D\\u540C\\u7684\\u73AF\\u5883\\u4E0B\\u9519\\u8BEF\\u975E\\u5E38\\u5BB9\\u6613\\u51FA\\u73B0\\uFF0C\\u4E0D\\u5904\\u7406\\u7684\\u8BDD\\u4F1A\\u51FA\\u73B0\\u95EE\\u9898\\u7684\\uFF0C\\u8F7B\\u5219\\u6CA1\\u6709\\u53CD\\u5E94\\uFF0C\\u91CD\\u5219\\u767D\\u5C4F\\u5F71\\u54CD\\u4E1A\\u52A1\\uFF0C\\u6240\\u4EE5\\u505A\\u7684\\u4E1C\\u897F\\u4E0D\\u662F\\u5F53\\u521D\\u5B9E\\u4E60\\u7684\\u65F6\\u5019 demo \\u7EA7\\u522B\\u7684\\u4E1C\\u897F\\u4E86\\u3002\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-javascript\"\n  }, \"import 'whatwg-fetch'\\n\\nfetch('example.com').then(response => response.json()).then(data => {\\n    if(data.status === 0) {\\n        const el = document.getElementById('container')\\n        if(el) el.innerHTML = data.message\\n        else console.error('element not found')\\n    } else {\\n        console.error('json data error', data.status)\\n    }\\n}).catch(() => {\\n    console.error('json fetch error');\\n})\\nconst divideBy = (a, b) => {\\n    if(typeof a !== 'number' ||\\n      typeof b !== 'number' ||\\n      b === 0) throw Error('invaild params')\\n    return a / b\\n}\\ndivideBy(6, 2) === 3\\n\")), mdx(\"blockquote\", null, mdx(\"p\", {\n    parentName: \"blockquote\"\n  }, \"\\u6709\\u6761\\u4EF6\\u7684\\u7528\\u5B8C\\u5584\\u7684\\u6D4B\\u8BD5\\u6761\\u4EF6\\u6765\\u6D4B\\u8BD5\\u8986\\u76D6\\u3002\\u6CA1\\u6761\\u4EF6\\u7684\\u591A\\u8E29\\u5751\\u88AB\\u9A82\\uFF0C\\u627E\\u5230\\u7ECF\\u9A8C\\u5C31\\u884C\\u4E86\\u3002\\u66F4\\u591A\\u7684\\u662F\\u628A\\u9519\\u8BEF\\u5904\\u7406\\u5F53\\u505A\\u7F16\\u7A0B\\u7684\\u4E00\\u90E8\\u5206\\uFF0C\\u5F00\\u53D1\\u8FDC\\u8FDC\\u4E0D\\u4EC5\\u4EC5\\u662F\\u6280\\u672F\\u9A8C\\u8BC1\\u8303\\u7574\\uFF0C\\u4F60\\u4EE5\\u4E3A\\u6CA1\\u4EBA\\u4F1A\\u9047\\u5230\\u7684\\u4E07\\u5206\\u4E4B\\u4E00\\u9519\\u8BEF\\u6761\\u4EF6\\uFF0C\\u653E\\u5927\\u4E0A\\u4E07\\u500D\\u5C31\\u662F\\u4E00\\u4E2A\\u5FC5\\u5B9A\\u51FA\\u73B0\\u7684\\u95EE\\u9898\\u3002\")), mdx(\"h3\", null, \"2\\u3001\\u8003\\u8651\\u7684\\u89D2\\u5EA6\\u4E0D\\u540C\"), mdx(\"p\", null, \"\\u4F5C\\u4E3A\\u4E00\\u4E2A\\u7A0B\\u5E8F\\u5458\\uFF0C\\u5C24\\u5176\\u662F\\u5728\\u6CA1\\u6709\\u5B8C\\u6574\\u56E2\\u961F\\u548C\\u4EA7\\u54C1\\u7684\\u60C5\\u51B5\\u4E0B\\uFF0C\\u505A\\u51FA\\u6765\\u7684\\u4EA7\\u54C1\\u975E\\u5E38\\u7684\\u7A0B\\u5E8F\\u5458\\u98CE\\u683C\\uFF0C\\u4E0D\\u4F1A\\u8003\\u8651\\u600E\\u4E48\\u7528\\uFF0C\\u800C\\u662F\\u8003\\u8651\\u5B9E\\u73B0\\u3002\\u5178\\u578B\\u7684\\u573A\\u666F\\u5C31\\u662F\\u4E0D\\u6CE8\\u91CD\\u7528\\u6237\\u4F53\\u9A8C\\u3001\\u6CA1\\u6709\\u6574\\u4F53\\u98CE\\u683C\\u548C\\u4EA4\\u4E92\\u4F53\\u7CFB\\u3001\\u6280\\u672F\\u63A2\\u7A76\\u5927\\u4E8E\\u4EA7\\u54C1\\u9700\\u6C42\\u7B49\\u3002\"), mdx(\"p\", null, \"\\u4E3E\\u4E2A\\u5C0F\\u674E\\u5B50\\uFF0C\\u51FA\\u9519\\u4FE1\\u606F\\u7684\\u65F6\\u5019\\uFF0C\\u7A0B\\u5E8F\\u5458\\u7ECF\\u5E38\\u4F1A\\u5C06\\u7CFB\\u7EDF\\u7684\\u8BED\\u8A00\\u544A\\u8BC9\\u7528\\u6237\\uFF0C\\u6BD4\\u5982\\u83B7\\u53D6\\u9EA6\\u514B\\u98CE\\u6743\\u9650\\u5C31\\u6709\\u5F88\\u591A\\u4E0D\\u540C\\u7684\\u9519\\u8BEF\\u7C7B\\u578B\\uFF0C\\u6BD4\\u5982\\u6743\\u9650\\u95EE\\u9898\\u3001\\u8BBE\\u5907\\u6545\\u969C\\u3001\\u627E\\u4E0D\\u5230\\u6216\\u5360\\u7528\\u3001\\u5B89\\u5168\\u95EE\\u9898\\u7B49\\uFF0C\\u6309\\u7167\\u4E00\\u822C\\u7406\\u89E3\\uFF0C\\u6211\\u4EEC\\u9700\\u8981\\u63D0\\u793A\\u7528\\u6237\\u54EA\\u91CC\\u6709\\u95EE\\u9898\\u4E86\\uFF0C\\u6240\\u4EE5\\u5C06\\u95EE\\u9898\\u544A\\u8BC9\\u7528\\u6237\\uFF0C\\u4F46\\u662F 95% \\u7684\\u7528\\u6237\\u5176\\u5B9E\\u4E0D\\u660E\\u767D\\u6211\\u4EEC\\u63D0\\u793A\\u7684\\u95EE\\u9898\\u7684\\uFF0C\\u6240\\u4EE5\\u6211\\u4EEC\\u53EA\\u80FD\\u63D0\\u793A\\u7528\\u6237\\u80FD\\u4E0D\\u80FD\\u7528\\uFF0C\\u4E0D\\u80FD\\u7528\\u7684\\u65F6\\u5019\\u80FD\\u4E0D\\u80FD\\u81EA\\u52A8\\u4FEE\\u590D\\uFF0C\\u4E0D\\u80FD\\u4FEE\\u590D\\u600E\\u4E48\\u8BA9\\u7528\\u6237\\u4F7F\\u7528\\u522B\\u7684\\u9014\\u5F84\\uFF0C\\u6700\\u540E\\u65E0\\u6CD5\\u4F7F\\u7528\\u76F4\\u63A5\\u63D0\\u793A\\u7528\\u6237\\u65E0\\u6CD5\\u4F7F\\u7528\\u5373\\u53EF\\u3002\", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"\\u5BF9\\u4E8E\\u7528\\u6237\\uFF0C\\u6211\\u4EEC\\u7A0B\\u5E8F\\u5458\\u53EF\\u4EE5\\u7528\\u7B80\\u77ED\\u7684\\u8BDD\\u544A\\u8BC9\\u4ED6\\u600E\\u4E48\\u529E\\uFF0C\\u800C\\u4E0D\\u662F\\u6559\\u4ED6\\u4E3A\\u4EC0\\u4E48\\u51FA\\u73B0\\u95EE\\u9898\\u3002\")), mdx(\"blockquote\", null, mdx(\"p\", {\n    parentName: \"blockquote\"\n  }, \"\\u591A\\u4E86\\u89E3\\u4E00\\u4E9B\\u4EA7\\u54C1\\u7684\\u7406\\u8BBA\\u548C\\u8BA4\\u8BC6\\uFF0C\\u4F1A\\u5BF9\\u7F16\\u7A0B\\u4EA7\\u751F\\u5F88\\u591A\\u597D\\u5904\\uFF0C\\u5BF9\\u81EA\\u5DF1\\u7684\\u80FD\\u529B\\u4E5F\\u662F\\u4E00\\u79CD\\u66F4\\u597D\\u7684\\u68B3\\u7406\\u3002\\u9762\\u5411 C \\u7AEF\\u7684\\u4EA7\\u54C1\\u4E00\\u5B9A\\u8981\\u6709\\u4E13\\u95E8\\u7684\\u7CBE\\u529B\\u6765\\u59A5\\u5584\\u5904\\u7406\\u6BCF\\u4E00\\u5904\\u7F16\\u7A0B\\u8D70\\u5411\\uFF0C\\u81EA\\u5DF1\\u624B\\u4E2D\\u7684\\u4EA7\\u54C1\\u4E0D\\u662F\\u51B7\\u51B0\\u51B0\\u7684\\u8F93\\u5165\\u8F93\\u51FA\\uFF0C\\u66F4\\u8981\\u7AD9\\u5728\\u4F60\\u7684\\u7528\\u6237\\u7FA4\\u4F53\\u8003\\u8651\\u4F60\\u6240\\u5448\\u73B0\\u7684\\u4EA4\\u4E92\\u3002\")), mdx(\"h3\", null, \"3\\u3001\\u53D1\\u73B0\\u9519\\u8BEF\\u7684\\u80FD\\u529B\"), mdx(\"p\", null, mdx(\"figure\", {\n    parentName: \"p\",\n    \"className\": \"gatsby-resp-image-figure\",\n    \"style\": {}\n  }, \"\\n    \", mdx(\"span\", {\n    parentName: \"figure\",\n    \"className\": \"gatsby-resp-image-wrapper\",\n    \"style\": {\n      \"position\": \"relative\",\n      \"display\": \"block\",\n      \"marginLeft\": \"auto\",\n      \"marginRight\": \"auto\",\n      \"maxWidth\": \"449px\"\n    }\n  }, \"\\n      \", mdx(\"a\", {\n    parentName: \"span\",\n    \"className\": \"gatsby-resp-image-link\",\n    \"href\": \"/static/77f73a2af5bfa1aef2da279782a2973a/b7a22/error.png\",\n    \"style\": {\n      \"display\": \"block\"\n    },\n    \"target\": \"_blank\",\n    \"rel\": [\"noopener\"]\n  }, \"\\n    \", mdx(\"span\", {\n    parentName: \"a\",\n    \"className\": \"gatsby-resp-image-background-image\",\n    \"style\": {\n      \"paddingBottom\": \"18.91891891891892%\",\n      \"position\": \"relative\",\n      \"bottom\": \"0\",\n      \"left\": \"0\",\n      \"backgroundImage\": \"url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAECAYAAACOXx+WAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAAgElEQVQY05WPSQqEQAxF6/53EzfigDij7kRKRWiovO4gRUPpxg8vEz+QmPM42HfLxwmqKwZy7l+LXPh5gDnrGpemSBRBniNxDL+eJIGigK6DcYS2haaBsoQsg6qCZblhnLUwz9D3iC7pgpqHAaYJ1hXUozlk224Yf71/9fHlF/oCoGQ2TX0F0HQAAAAASUVORK5CYII=')\",\n      \"backgroundSize\": \"cover\",\n      \"display\": \"block\"\n    }\n  }), \"\\n  \", mdx(\"img\", {\n    parentName: \"a\",\n    \"className\": \"gatsby-resp-image-image\",\n    \"alt\": \"Google 搜索\",\n    \"title\": \"Google 搜索\",\n    \"src\": \"/static/77f73a2af5bfa1aef2da279782a2973a/b7a22/error.png\",\n    \"srcSet\": [\"/static/77f73a2af5bfa1aef2da279782a2973a/2c191/error.png 259w\", \"/static/77f73a2af5bfa1aef2da279782a2973a/b7a22/error.png 449w\"],\n    \"sizes\": \"(max-width: 449px) 100vw, 449px\",\n    \"style\": {\n      \"width\": \"100%\",\n      \"height\": \"100%\",\n      \"margin\": \"0\",\n      \"verticalAlign\": \"middle\",\n      \"position\": \"absolute\",\n      \"top\": \"0\",\n      \"left\": \"0\"\n    },\n    \"loading\": \"lazy\"\n  }), \"\\n  \"), \"\\n    \"), \"\\n    \", mdx(\"figcaption\", {\n    parentName: \"figure\",\n    \"className\": \"gatsby-resp-image-figcaption\"\n  }, \"Google \\u641C\\u7D22\"), \"\\n  \")), mdx(\"p\", null, \"\\u8FD9\\u4E2A\\u5BF9\\u4E8E\\u521D\\u5B66\\u8005\\u66F4\\u591A\\u4E9B\\uFF0C\\u53EF\\u80FD\\u662F\\u56E0\\u4E3A\\u7ECF\\u9A8C\\u95EE\\u9898\\uFF0C\\u6216\\u8005\\u5C31\\u662F\\u5355\\u7EAF\\u7684\\u4E0D\\u77E5\\u6240\\u63AA\\u3002\\u6709\\u5F88\\u591A\\u4EBA\\u5728\\u7A0B\\u5E8F\\u51FA\\u73B0\\u9519\\u7684\\u7B2C\\u4E00\\u53CD\\u5E94\\u662F\\u81EA\\u5DF1\\u4EE3\\u7801\\u51FA\\u73B0\\u95EE\\u9898\\uFF0C\\u7136\\u540E\\u5C31\\u76EF\\u7740\\u81EA\\u5DF1\\u7684\\u4EE3\\u7801 \\u201C\\u770B\\u201D \\u54EA\\u91CC\\u51FA\\u73B0\\u95EE\\u9898\\u4E86\\uFF0C\\u800C\\u4E0D\\u662F\\u53BB \\u201C\\u8C03\\u8BD5\\u201D\\u3002\\u81EA\\u4EE5\\u4E3A\\u80FD\\u8D70\\u901A\\u7684\\u6D41\\u7A0B\\u53CD\\u590D\\u68C0\\u67E5\\u65E0\\u6570\\u904D\\uFF0C\\u4E0D\\u5982\\u6253\\u4E2A\\u65AD\\u70B9\\u8BA9 debuger \\u544A\\u8BC9\\u4F60\\u7A0B\\u5E8F\\u600E\\u4E48\\u8D70\\u7684\\u3002\"), mdx(\"p\", null, \"\\u800C\\u4E14\\u6709\\u4E9B\\u4EBA\\u662F\\u77E5\\u9053\\u51FA\\u9519\\u4E86\\uFF0C\\u62A5\\u9519\\u4FE1\\u606F\\u63D0\\u793A\\u7684\\u5F88\\u660E\\u786E\\uFF0C\\u4F46\\u662F\\u4E0D\\u770B\\u62A5\\u9519\\u4FE1\\u606F\\uFF0C\\u6216\\u8005\\u4E0D\\u660E\\u767D\\u63D0\\u793A\\u7684\\u9519\\u8BEF\\u7684\\u542B\\u4E49\\uFF0C\\u53EF\\u80FD\\u5BF9\\u82F1\\u6587\\u4E0D\\u654F\\u611F\\uFF0C\\u53EF\\u80FD\\u89C9\\u5F97\\u81EA\\u5DF1\\u77E5\\u9053\\u54EA\\u91CC\\u6709\\u95EE\\u9898\\uFF1F\\uFF1F\\u8BA9\\u6211\\u5F88\\u8D39\\u89E3\\u3002\"), mdx(\"p\", null, \"\\u521A\\u5F00\\u59CB\\u7684\\u65F6\\u5019\\u90FD\\u8981\\u63D0\\u793A\\u770B\\u9519\\u8BEF\\u662F\\u4EC0\\u4E48\\uFF0C\\u770B\\u5F97\\u61C2\\u5C31\\u6539\\uFF0C\\u770B\\u4E0D\\u61C2\\u5C31\\u641C\\u7D22\\uFF0C\\u521D\\u7EA7\\u9636\\u6BB5\\u7684\\u7F16\\u7A0B\\uFF0C\\u63D0\\u793A\\u52A0\\u641C\\u7D22\\u80FD\\u89E3\\u51B3 90% \\u7684\\u95EE\\u9898\\u3002\"), mdx(\"p\", null, \"\\u5982\\u679C\\u6CA1\\u529E\\u6CD5\\u5728\\u7B2C\\u4E00\\u65F6\\u95F4\\u770B\\u5230\\u95EE\\u9898\\uFF1A\"), mdx(\"ol\", null, mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"\\u4E00\\u65B9\\u9762\\u662F\\u903B\\u8F91\\u95EE\\u9898\\uFF0C\\u6BD4\\u5982\\u4EE3\\u7801\\u7684\\u8FD0\\u884C\\u6D41\\u7A0B\\uFF0C\\u6216\\u8005\\u4EE3\\u7801\\u7684\\u8C03\\u7528\\u4E4B\\u7C7B\\u7684\\u51FA\\u73B0\\u95EE\\u9898\\uFF0C\\u8FD9\\u6837\\u7684\\u60C5\\u51B5\\u7B80\\u5355\\u7684\\u6253\\u65AD\\u70B9\\u6216\\u8005\\u8F93\\u51FA\\u5173\\u952E\\u6570\\u636E\\u5C31\\u80FD\\u53D1\\u73B0\\u95EE\\u9898\\u3002\")), mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"\\u53E6\\u4E00\\u65B9\\u9762\\u662F\\u4E1A\\u52A1\\u95EE\\u9898\\u3002\\u6BD4\\u5982\\u4EA7\\u54C1\\u6587\\u6863\\u4E2D\\u6570\\u636E\\u7684\\u7ED3\\u6784\\u5904\\u7406\\u51FA\\u73B0\\u95EE\\u9898\\uFF0C\\u6216\\u8005\\u7406\\u89E3\\u9519\\u4E86\\u6587\\u6863\\uFF0C\\u8FD9\\u4E2A\\u5C31\\u662F\\u4E1A\\u52A1\\u719F\\u6089\\u7A0B\\u5EA6\\u4E86\\u3002\"))), mdx(\"blockquote\", null, mdx(\"p\", {\n    parentName: \"blockquote\"\n  }, \"\\u5584\\u5176\\u4E8B\\uFF0C\\u5229\\u5176\\u5668\\u3002\\u7406\\u89E3 IDE \\u7684\\u8F93\\u51FA\\uFF0C\\u7406\\u89E3 SDK\\u3001API \\u63D0\\u4F9B\\u7684\\u4FE1\\u606F\\u4F5C\\u4E3A\\u7EBF\\u7D22\\u3002\")), mdx(\"h3\", null, \"3\\u3001\\u6587\\u6863\\u641C\\u7D22\\u80FD\\u529B\"), mdx(\"p\", null, mdx(\"figure\", {\n    parentName: \"p\",\n    \"className\": \"gatsby-resp-image-figure\",\n    \"style\": {}\n  }, \"\\n    \", mdx(\"span\", {\n    parentName: \"figure\",\n    \"className\": \"gatsby-resp-image-wrapper\",\n    \"style\": {\n      \"position\": \"relative\",\n      \"display\": \"block\",\n      \"marginLeft\": \"auto\",\n      \"marginRight\": \"auto\",\n      \"maxWidth\": \"647px\"\n    }\n  }, \"\\n      \", mdx(\"a\", {\n    parentName: \"span\",\n    \"className\": \"gatsby-resp-image-link\",\n    \"href\": \"/static/719dbec12b7e3cc39aa62bb56d167a8d/8d155/how-to-code.png\",\n    \"style\": {\n      \"display\": \"block\"\n    },\n    \"target\": \"_blank\",\n    \"rel\": [\"noopener\"]\n  }, \"\\n    \", mdx(\"span\", {\n    parentName: \"a\",\n    \"className\": \"gatsby-resp-image-background-image\",\n    \"style\": {\n      \"paddingBottom\": \"5.019305019305019%\",\n      \"position\": \"relative\",\n      \"bottom\": \"0\",\n      \"left\": \"0\",\n      \"backgroundImage\": \"url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAABCAYAAADeko4lAAAACXBIWXMAAAsSAAALEgHS3X78AAAARUlEQVQI123DAQpAMBSAYVcxoSiExlt7E9PI/e/zcwBffdkqirhAPG/6YWacLEdMaNhJ14NdHCIerxtN25GbElPU3+r3Cx09H42LFZkYAAAAAElFTkSuQmCC')\",\n      \"backgroundSize\": \"cover\",\n      \"display\": \"block\"\n    }\n  }), \"\\n  \", mdx(\"img\", {\n    parentName: \"a\",\n    \"className\": \"gatsby-resp-image-image\",\n    \"alt\": \"Google 搜索\",\n    \"title\": \"Google 搜索\",\n    \"src\": \"/static/719dbec12b7e3cc39aa62bb56d167a8d/8d155/how-to-code.png\",\n    \"srcSet\": [\"/static/719dbec12b7e3cc39aa62bb56d167a8d/2c191/how-to-code.png 259w\", \"/static/719dbec12b7e3cc39aa62bb56d167a8d/86b01/how-to-code.png 518w\", \"/static/719dbec12b7e3cc39aa62bb56d167a8d/8d155/how-to-code.png 647w\"],\n    \"sizes\": \"(max-width: 647px) 100vw, 647px\",\n    \"style\": {\n      \"width\": \"100%\",\n      \"height\": \"100%\",\n      \"margin\": \"0\",\n      \"verticalAlign\": \"middle\",\n      \"position\": \"absolute\",\n      \"top\": \"0\",\n      \"left\": \"0\"\n    },\n    \"loading\": \"lazy\"\n  }), \"\\n  \"), \"\\n    \"), \"\\n    \", mdx(\"figcaption\", {\n    parentName: \"figure\",\n    \"className\": \"gatsby-resp-image-figcaption\"\n  }, \"Google \\u641C\\u7D22\"), \"\\n  \")), mdx(\"p\", null, \"\\u5728\\u6211\\u7ECF\\u624B\\u7684\\u5B9E\\u4E60\\u751F\\u4E2D\\uFF0C\\u5B66\\u7684\\u6700\\u5FEB\\u6700\\u597D\\u7684\\u662F\\u6700\\u4F1A\\u7528\\u641C\\u7D22\\u7684\\u3002\\u5BF9\\u4E8E\\u641C\\u7D22\\u7684\\u90E8\\u5206\\uFF0C\\u5F88\\u591A\\u4E5F\\u662F\\u5F88\\u610F\\u5916\\u7684\\u4E0D\\u4E13\\u4E1A\\uFF0C\\u7ECF\\u5E38\\u770B\\u5230\\u521D\\u5B66\\u8005\\u7528\\u4E00\\u4E9B\\u9519\\u8BEF\\u7684\\u5173\\u952E\\u8BCD\\u641C\\u7D22\\uFF0C\\u6216\\u8005\\u5230\\u767E\\u5EA6\\u77E5\\u9053\\u4E0A\\u627E\\u95EE\\u9898\\uFF0C\\u70B9\\u5F00 10 \\u5E74\\u524D\\u7684\\u6587\\u7AE0\\u627E\\u89E3\\u51B3\\u65B9\\u6CD5\\uFF0C\\u4EE4\\u4EBA\\u5F88\\u65E0\\u8BED\\u3002\"), mdx(\"p\", null, \"\\u5176\\u5B9E\\u5B66\\u4E60\\u6280\\u672F\\u7684\\u65F6\\u5019\\uFF0C\\u76F4\\u63A5\\u5230\\u9879\\u76EE\\u7684\\u5B98\\u7F51\\u3001\\u6E90\\u4EE3\\u7801\\u7684GitHub\\u4E0A\\u627E\\u5B98\\u65B9\\u6587\\u6863\\u662F\\u6700\\u5FEB\\u6700\\u597D\\u7684\\uFF0C\\u5F88\\u5168\\u5F88\\u8BE6\\u7EC6\\u7684\\u4E00\\u624B\\u8D44\\u6599\\uFF0C\\u800C\\u4E14\\u73B0\\u5728\\u9644\\u5E26\\u4E2D\\u6587\\u6587\\u6863\\u7FFB\\u8BD1\\u8D8A\\u6765\\u8D8A\\u591A\\uFF0C\\u5230\\u5B98\\u7F51\\u76F4\\u63A5\\u627E get-start \\u76EE\\u5F55\\u4E86\\u89E3\\u5B89\\u88C5\\u548C\\u57FA\\u672C\\u7528\\u6CD5\\uFF0C\\u67E5\\u8D44\\u6599\\u7684\\u65F6\\u5019\\u627E APIs \\u6216\\u8005 Docs \\u76EE\\u5F55\\uFF0C\\u8FD9\\u4E9B\\u57FA\\u672C\\u4E0A\\u80FD\\u591F\\u4FDD\\u8BC1\\u5F88\\u597D\\u7684\\u4E0A\\u624B\\u3002\"), mdx(\"p\", null, \"\\u6709\\u95EE\\u9898\\u7684\\u65F6\\u5019\\uFF0C\\u65E0\\u8BBA\\u662F bing\\u3001google\\uFF0C\\u90FD\\u4F1A\\u663E\\u793A\\u641C\\u7D22\\u6765\\u6E90\\u548C\\u65F6\\u95F4\\uFF0C\\u6311\\u9009 Stack Overflow\\uFF0Cgithub\\uFF0Cmedium\\uFF0Csegmentfault\\uFF0Ccsdn\\uFF0C\\u7B80\\u4E66\\uFF0C\\u77E5\\u4E4E\\u7B49\\uFF0C\\u7136\\u540E\\u770B\\u4E0B\\u6700\\u8FD1\\u4E00\\u4E24\\u5E74\\u7684\\u7B54\\u6848\\uFF0C\\u57FA\\u672C\\u4E0A\\u90FD\\u80FD\\u89E3\\u51B3\\u5927\\u90E8\\u5206\\u7684\\u95EE\\u9898\\u3002\"), mdx(\"blockquote\", null, mdx(\"p\", {\n    parentName: \"blockquote\"\n  }, \"\\u6709\\u6761\\u4EF6\\u7684\\u8E29\\u68AF\\u5B50\\u53BB google\\uFF0C\\u6CA1\\u6761\\u4EF6\\u7684\\u77E5\\u9053\\u5230 bing/sogou \\u4E0A\\uFF0C\\u4E0D\\u662F\\u8BF4 baidu \\u6CA1\\u529E\\u6CD5\\u89E3\\u51B3\\u95EE\\u9898\\uFF0C\\u800C\\u662F\\u5207\\u8EAB\\u4F53\\u4F1A\\u5230\\u9047\\u5230\\u5F88\\u591A\\u6B21 baidu \\u7FFB\\u4E09\\u9875\\u6CA1\\u6709\\u4E00\\u4E2A\\u7ED3\\u679C\\uFF0C\\u4F46\\u662F Google \\u7B2C\\u4E00\\u6761\\u5C31\\u662F\\u7B54\\u6848\\uFF0C\\u5B66\\u4F1A\\u627E\\u5230\\u8D28\\u91CF\\u9AD8\\u7684\\u5730\\u65B9\\u5E2E\\u81EA\\u5DF1\\u89E3\\u51B3\\u95EE\\u9898\\u3002\")), mdx(\"h3\", null, \"4\\u3001\\u9879\\u76EE\\u5BF9\\u63A5\"), mdx(\"p\", null, \"\\u5982\\u679C\\u4F60\\u8981\\u63A5\\u624B\\u53E6\\u4E00\\u4E2A\\u4EBA\\u7684\\u9879\\u76EE\\uFF0C\\u6216\\u8005\\u5982\\u679C\\u4F60\\u8981\\u7BA1\\u63A7\\u53E6\\u4E00\\u4E2A\\u4EBA\\u7684\\u9879\\u76EE\\uFF0C\\u6216\\u8005\\u6BD4\\u8F83\\u591A\\u7684\\u662F\\u4E4B\\u524D\\u5F00\\u53D1\\u7684\\u67D0\\u4E2A\\u6A21\\u5757\\u4EA4\\u7ED9\\u4F60\\u505A\\uFF0C\\u4F60\\u5E94\\u8BE5\\u600E\\u4E48\\u4E0A\\u624B\\uFF1F\\u4E00\\u822C\\u65B0\\u624B\\u53EF\\u80FD\\u5C31\\u5F00\\u59CB\\u4ECE\\u9879\\u76EE\\u5165\\u53E3\\u51FD\\u6570\\u5F00\\u59CB\\u770B\\u8D77\\u4E86\\uFF0C\\u5982\\u679C\\u662F\\u9879\\u76EE\\u4EA4\\u63A5\\uFF0C\\u53EF\\u80FD\\u5C31\\u5F00\\u59CB\\u4ECE\\u5934\\u5230\\u5C3E\\u95EE\\u53E6\\u4E00\\u4E2A\\u4EBA\\u8FC7\\u4EE3\\u7801\\u548C\\u4E1A\\u52A1\\u4E86\\u3002\"), mdx(\"p\", null, \"\\u8FD9\\u6837\\u505A\\u6CA1\\u95EE\\u9898\\uFF0C\\u4F46\\u662F\\u4E25\\u683C\\u70B9\\u8FD9\\u6837\\u4F1A\\u88AB\\u9A82\\u7684\\uFF0C\\u56E0\\u4E3A\\u6BD4\\u4E1A\\u52A1\\u903B\\u8F91\\u66F4\\u91CD\\u8981\\u7684\\u662F\\u8FD9\\u4E2A\\u9879\\u76EE\\u7684\\u76EE\\u6807\\u3001\\u9636\\u6BB5\\u76EE\\u6807\\u3001\\u73B0\\u5728\\u7684\\u72B6\\u6001\\uFF0C\\u8FD8\\u6709\\u5F53\\u524D\\u7684\\u9A8C\\u6536\\u548C\\u4EA4\\u4ED8\\uFF0C\\u6CA1\\u9519\\uFF0C\\u505A\\u4E86\\u4E00\\u534A\\u7684\\u9879\\u76EE\\u4ECB\\u5165\\u65B0\\u4EBA\\u4E5F\\u9700\\u8981\\u4EA4\\u4ED8\\u7684\\u6982\\u5FF5\\u3002\"), mdx(\"p\", null, \"\\u7B2C\\u4E00\\u65F6\\u95F4\\u5E94\\u8BE5\\u662F\\u4EA4\\u63A5\\u8FD9\\u4E2A\\u9879\\u76EE\\u76EE\\u524D\\u662F\\u4EC0\\u4E48\\u72B6\\u6001\\uFF0C\\u56E0\\u4E3A\\u4EA4\\u63A5\\u4E0D\\u4EC5\\u4EC5\\u662F\\u4EE3\\u7801\\uFF0C\\u8FD8\\u6709\\u8C01\\u80CC\\u9505\\u7684\\u95EE\\u9898\\uFF0C\\u65B0\\u624B\\u63A5\\u624B\\u4E00\\u4E2A\\u9879\\u76EE\\u4E4B\\u540E\\uFF0C\\u51FA\\u73B0\\u95EE\\u9898\\u6700\\u591A\\u7684\\u53CD\\u9988\\u662F\\uFF0C\\u8FD9\\u662F\\u4E0A\\u4E00\\u4E2A\\u4EBA\\u7684 BUG\\uFF0C\\u4E0D\\u662F\\u6211\\u7684\\u95EE\\u9898\\u3002\", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \" \\u4E0D\\u597D\\u610F\\u601D\\uFF0C\\u4EA4\\u63A5\\u4E4B\\u540E\\uFF0C\\u5168\\u90FD\\u662F\\u4F60\\u7684\\u95EE\\u9898\\u4E86\\u3002\")), mdx(\"p\", null, \"\\u6BD4\\u5982\\u4E0A\\u4E00\\u4E2A\\u4EBA\\u8BF4\\u9879\\u76EE\\u5DF2\\u7ECF\\u628A A\\u3001B\\u3001C \\u9700\\u6C42\\u90FD\\u5B8C\\u6210\\u4E86\\uFF0C\\u903B\\u8F91\\u4E0A\\u6CA1\\u95EE\\u9898\\uFF0C\\u7136\\u540E\\u4F60\\u8DDF\\u7740\\u770B\\u4E86\\u8FD9\\u5757\\u7684\\u4E1A\\u52A1\\uFF0C\\u867D\\u7136\\u8FD8\\u6CA1\\u4E0A\\u7EBF\\u3001\\u6CA1\\u6D4B\\u8BD5\\u3001\\u6CA1\\u4EA7\\u51FA\\uFF0C\\u4F46\\u662F\\u770B\\u7740\\u903B\\u8F91\\u6CA1\\u95EE\\u9898\\uFF0C\\u6BD5\\u7ADF\\u4ED6\\u8BF4\\u90FD\\u5B8C\\u4E86\\uFF0C\\u7136\\u540E\\u8FD9\\u5757\\u7B97\\u4EA4\\u63A5\\u5B8C\\u3002\\u8FC7\\u4E24\\u5929\\u5F00\\u59CB\\u7740\\u624B\\u6DF1\\u5165\\u8FDB\\u4E00\\u6B65\\u5F00\\u53D1\\uFF0C\\u53D1\\u73B0\\u795E\\u5751\\u5F88\\u591A\\uFF0C\\u8FDB\\u5EA6\\u5728\\u8FD9\\u91CC\\u5361\\u4F4F\\u4E86\\uFF0C\\u8FD9\\u7B97\\u662F\\u4F60\\u81EA\\u5DF1\\u7684\\u8FDB\\u5EA6\\u5361\\u70B9\\u95EE\\u9898\\u4E86\\u3002\"), mdx(\"p\", null, \"\\u6240\\u4EE5\\u63A5\\u624B\\u522B\\u4EBA\\u7684\\u9879\\u76EE\\uFF0C\\u6216\\u8005\\u5C06\\u9879\\u76EE\\u4EA4\\u7ED9\\u522B\\u4EBA\\uFF0C\\u7B2C\\u4E00\\u4E2A\\u6982\\u5FF5\\u662F\\u4EA4\\u4ED8\\u548C\\u9A8C\\u6536\\uFF0C\\u6BD5\\u7ADF\\u8FD9\\u6D89\\u53CA\\u5230\\u5BF9\\u9879\\u76EE\\u8D1F\\u8D23\\u7684\\u95EE\\u9898\\uFF0C\\u5176\\u6B21\\u624D\\u662F\\u5177\\u4F53\\u7684\\u4E1A\\u52A1\\u903B\\u8F91\\u548C\\u4EE3\\u7801\\uFF0C\\u867D\\u7136\\u9700\\u8981\\u82B1\\u66F4\\u591A\\u65F6\\u95F4\\u3002\"), mdx(\"h3\", null, \"5\\u3001\\u6280\\u80FD\\u7684\\u65B9\\u6CD5\\u95EE\\u9898\"), mdx(\"p\", null, \"\\u5B66\\u4E60\\u7F16\\u7A0B\\u3001\\u4EE3\\u7801\\uFF0C\\u51E0\\u4E4E\\u6CA1\\u529E\\u6CD5\\u7EBF\\u6027\\u7684\\u63D0\\u9AD8\\u81EA\\u5DF1\\uFF0C\\u6CA1\\u529E\\u6CD5\\u50CF\\u4E66\\u672C\\u4F3C\\u7684\\uFF0C\\u7B2C\\u4E00\\u7AE0\\u53D8\\u91CF\\uFF0C\\u7B2C\\u4E8C\\u7AE0\\u8BED\\u53E5\\u3002\\u8FD9\\u6837\\u7684\\u63D0\\u5347\\u65B9\\u6CD5\\u5BF9\\u4E8E\\u5927\\u90E8\\u5206\\u4EBA\\u5C31\\u662F\\u6CA1\\u7528\\u7684\\uFF0C\\u56E0\\u4E3A\\u8FD9\\u4E2A\\u5C31\\u50CF\\u662F\\u6559\\u4F60\\u600E\\u4E48\\u5E72\\u519C\\u6D3B\\uFF0C\\u7406\\u8BBA\\u77E5\\u8BC6\\u5F88\\u597D\\uFF0C\\u4F46\\u662F\\u4F60\\u82B1\\u4E86\\u4E00\\u4E2A\\u6708\\u770B\\u4E66\\uFF0C\\u771F\\u5B9E\\u81EA\\u5DF1\\u4E0A\\u624B\\u3001\\u770B\\u522B\\u4EBA\\u7684\\u4EE3\\u7801\\u5B9E\\u8DF5\\u3001\\u770B\\u89C6\\u9891\\u7B49\\u90FD\\u80FD\\u628A\\u4E00\\u5C0F\\u65F6\\u7684\\u7406\\u8BBA\\u7528\\u4E94\\u5206\\u949F\\u6F14\\u793A\\u6E05\\u695A\\u3002\\u77E5\\u8BC6\\u7406\\u8BBA\\u662F\\u7814\\u7A76\\uFF0C\\u624B\\u827A\\u6280\\u80FD\\u662F\\u4E0A\\u624B\\u3002\"), mdx(\"p\", null, \"\\u8FD9\\u4E5F\\u662F\\u6211\\u5EFA\\u8BAE\\u521D\\u5B66\\u8005\\u5148\\u4E0A\\u624B\\u518D\\u7406\\u89E3\\u7684\\u539F\\u56E0\\uFF0C\\u4F60\\u80FD\\u6539\\u4EE3\\u7801\\uFF0C\\u5C31\\u5F88\\u5BB9\\u6613\\u5199\\u4EE3\\u7801\\uFF0C\\u4EFF\\u7167\\u7740\\u628A\\u4EE3\\u7801\\u6539\\u6210\\u6EE1\\u8DB3\\u4E1A\\u52A1\\uFF0C\\u5C31\\u80FD\\u5F88\\u5BB9\\u6613\\u7684\\u81EA\\u5DF1\\u5199\\u4EE3\\u7801\\u5B8C\\u6210\\u53E6\\u4E00\\u4E2A\\u4EFB\\u52A1\\uFF0C\\u6162\\u6162\\u7684\\u5C31\\u80FD\\u4ECE\\u4E0A\\u5C42\\u7406\\u89E3\\u5E95\\u5C42\\u7684\\u4E1C\\u897F\\u3002\"), mdx(\"p\", null, \"\\u8FD9\\u662F\\u5F88\\u81EA\\u7136\\u7684\\u4E8B\\u60C5\\uFF0C\\u4E2A\\u4EBA\\u7684\\u6210\\u957F\\u4E5F\\u662F\\u8FD9\\u6837\\uFF0C\\u5148\\u770B\\u4EE3\\u7801\\u3001\\u6539\\u4EE3\\u7801\\u3001\\u5199\\u4EE3\\u7801\\u3001\\u51FA\\u73B0\\u95EE\\u9898\\u53BB\\u641C\\u7D22\\u3001\\u7136\\u540E\\u6C89\\u6DC0\\u6280\\u672F\\u603B\\u7ED3\\u6587\\u7AE0\\u3002\"), mdx(\"h3\", null, \"6\\u3001\\u7406\\u8BBA\\u91CD\\u8981\\u5417\\uFF1F\"), mdx(\"p\", null, \"\\u5F88\\u91CD\\u8981\\uFF01\\u4E0A\\u4E00\\u70B9\\u8BF4\\u4E86\\uFF0C\\u4E0D\\u8981\\u62B1\\u7740\\u4E66\\u5543\\uFF0C\\u56E0\\u4E3A\\u4ECE 0 \\u5B66\\u4E60\\u7406\\u8BBA\\u77E5\\u8BC6\\u5BF9\\u521D\\u5B66\\u8005\\u7684\\u63D0\\u9AD8\\u6548\\u7387\\u5F88\\u4F4E\\uFF0C\\u4F46\\u662F\\u5E76\\u4E0D\\u662F\\u8BF4\\u7406\\u8BBA\\u4E0D\\u91CD\\u8981\\u3002\\u5728\\u5E73\\u65F6\\u7684\\u7F16\\u7A0B\\u4E2D\\uFF0C80% \\u7684\\u65F6\\u5019\\u662F\\u4E1A\\u52A1\\uFF0C\\u4E5F\\u5C31\\u662F\\u89E3\\u51B3\\u95EE\\u9898\\u7684\\u80FD\\u529B\\uFF0C\\u4F46\\u662F\\u8FD8\\u6709 20% \\u7684\\u662F \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"\\u66F4\\u597D\"), \" \\u7684\\u89E3\\u51B3\\u95EE\\u9898\\u7684\\u80FD\\u529B\\uFF0C\\u8FD9\\u4E5F\\u662F\\u4F60\\u6BD4\\u522B\\u4EBA\\u66F4\\u597D\\u7684\\u4EF7\\u503C\\u6700\\u5927\\u5316\\u7684\\u5730\\u65B9\\u3002\"), mdx(\"p\", null, \"\\u7B97\\u6CD5\\u7406\\u8BBA\\u3001\\u6570\\u636E\\u5E93\\u7406\\u8BBA\\u3001\\u7F51\\u7EDC\\u3001\\u591A\\u7EBF\\u7A0B\\u3001\\u6D88\\u606F\\u961F\\u5217\\u3001\\u67B6\\u6784\\u7B49\\uFF0C\\u8FD9\\u4E9B\\u4E1C\\u897F\\u90FD\\u662F\\u5F88\\u7406\\u8BBA\\u7684\\u4E1C\\u897F\\uFF0C\\u5982\\u679C\\u4F60\\u4E0D\\u77E5\\u9053\\u8FD9\\u4E9B\\uFF0C\\u5728\\u9047\\u5230\\u7684\\u65F6\\u5019\\u5C31\\u4F1A\\u662F\\u4E00\\u4E2A\\u74F6\\u9888\\u3002\\u8FD9\\u4E5F\\u4E0D\\u662F\\u9047\\u5230\\u5C31\\u80FD\\u641C\\u4E24\\u4E09\\u4E0B\\u5C31\\u80FD\\u61C2\\u5F97\\u7684\\u4E1C\\u897F\\u3002\"), mdx(\"p\", null, \"\\u6BD4\\u5982\\u5904\\u7406\\u4E00\\u4E2A\\u5927\\u6570\\u7EC4\\u7684\\u6392\\u5E8F\\uFF0C\\u7EDF\\u8BA1\\u5168\\u56FD\\u4EBA\\u53E3\\u6570\\u636E\\u7684\\u6392\\u5E8F\\uFF0C\\u6570\\u636E\\u91CF\\u7EA7\\u5728 \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"10^9\"), \"\\uFF0C\\u5982\\u679C\\u4F7F\\u7528\\u5192\\u6CE1\\u6392\\u5E8F\\u7684 \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"O(n^2)\"), \" \\u590D\\u6742\\u5EA6\\u9700\\u8981 \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"n^18\"), \" \\u6B21\\u8FD0\\u7B97\\uFF0C\\u5728\\u666E\\u901A\\u8BA1\\u7B97\\u673A\\u4E0A(\", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"10^9 flops\"), \")\\u9700\\u8981\\u81F3\\u5C11 \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"10^9 \\u79D2 = 30 \\u5E74\"), \" \\u624D\\u80FD\\u89E3\\u51B3\\uFF08\\u4EC5\\u8003\\u8651\\u7B97\\u529B\\uFF09\\uFF0C\\u800C\\u4F7F\\u7528\\u5F52\\u5E76\\u6392\\u5E8F \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"O(nlogn)\"), \" \\u53EA\\u9700\\u8981 \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"30 \\xD7 10^9\"), \" \\u6B21\\u8FD0\\u7B97\\uFF0C\\u666E\\u901A\\u8BA1\\u7B97\\u673A\\u53EA\\u9700\\u8981 \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"30\\u79D2\"), \" \\u5C31\\u80FD\\u89E3\\u51B3\\u3002\"), mdx(\"p\", null, \"\\u6240\\u4EE5\\u5F3A\\u70C8\\u5EFA\\u8BAE\\u628A\\u7A7A\\u95F2\\u65F6\\u95F4\\u653E\\u5230\\u8FD9\\u4E9B\\u4E1C\\u897F\\u4E0A\\u3002\"), mdx(\"h3\", null, \"7\\u3001\\u4E0D\\u4E60\\u60EF\\u56E2\\u961F\\u534F\\u4F5C\"), mdx(\"p\", null, \"\\u56E2\\u961F\\u534F\\u4F5C\\u8FD9\\u4E2A\\u6D89\\u53CA\\u5230\\u6BD4\\u8F83\\u5927\\u7684\\u8303\\u56F4\\uFF0C\\u6BD4\\u5982\\u6CE8\\u91CA\\u3001\\u6587\\u6863\\u3001Git\\u3001\\u4EA4\\u63A5\\u3001CodeReview \\u7B49\\u3002\"), mdx(\"p\", null, \"\\u65B0\\u624B\\u5BF9\\u4E1A\\u52A1\\u548C\\u4EA4\\u6D41\\u4E0D\\u662F\\u5F88\\u719F\\u6089\\uFF0C\\u6240\\u4EE5\\u5F88\\u5927\\u7684\\u6CE8\\u610F\\u529B\\u90FD\\u5728\\u5B8C\\u6210\\u4EFB\\u52A1\\u4E0A\\u4E86\\uFF0C\\u6240\\u4EE5\\u5468\\u56F4\\u652F\\u6301\\u80FD\\u529B\\u6CA1\\u6709\\u90A3\\u4E48\\u91CD\\u89C6\\uFF0C\\u800C\\u8FD9\\u4E9B\\u5728\\u56E2\\u961F\\u91CC\\u8FD8\\u662F\\u6BD4\\u8F83\\u91CD\\u8981\\u7684\\u3002\"), mdx(\"ol\", null, mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"\\u6CE8\\u91CA: \\u56E2\\u961F\\u5DE5\\u4F5C\\u590D\\u6742\\u5EA6\\u66F4\\u9AD8\\uFF0C\\u4E00\\u4E9B\\u5173\\u952E\\u70B9\\u7684\\u6CE8\\u91CA\\u5BF9\\u522B\\u4EBA\\u7684\\u9605\\u8BFB\\u80FD\\u8D77\\u5F88\\u5927\\u7684\\u5E2E\\u52A9\\u3002\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"\\u6587\\u6863: \\u5F88\\u591A\\u4EBA\\u4E0D\\u4E60\\u60EF\\u5199\\u6587\\u6863\\uFF0C\\u4F46\\u662F\\u4E00\\u4E2A\\u9879\\u76EE\\u9700\\u8981\\u544A\\u8BC9\\u522B\\u4EBA\\u80CC\\u666F\\u3001\\u76EE\\u7684\\u3001\\u72B6\\u6001\\u3001\\u542F\\u52A8\\u3001\\u90E8\\u7F72\\u3001\\u8C03\\u8BD5\\u7B49\\uFF0C\\u65B9\\u4FBF\\u5176\\u4ED6\\u4EBA\\u4ECB\\u5165\\u3002\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"Git: \\u8FD9\\u4E2A\\u7B97\\u662F\\u5FC5\\u5907\\u6280\\u80FD\\u4E86\\u3002\\u8981\\u8BF4\\u7684\\u662F workflow \\u7684\\u80FD\\u529B\\uFF0C\\u6BD4\\u5982\\u5FC5\\u987B\\u4FDD\\u8BC1\\u6BCF\\u4E2A\\u4E3B\\u5206\\u652F\\u90FD\\u662F\\u80FD\\u7F16\\u8BD1\\u7684\\u7248\\u672C\\uFF0C\\u4FDD\\u8BC1\\u6BCF\\u6B21\\u63D0\\u4EA4\\u90FD\\u6709\\u8BF4\\u660E\\u6539\\u52A8\\u7684\\u90E8\\u5206\\u3002\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"CodeReview: \\u65E0\\u8BBA\\u5BF9\\u4E8E\\u521D\\u5B66\\u8005\\u8FD8\\u662F\\u5230\\u4E00\\u4E2A\\u65B0\\u73AF\\u5883\\uFF0C\\u90FD\\u8981\\u8BA9\\u5176\\u4ED6\\u4EBA Code Review \\u4E0B\\uFF0C\\u4FDD\\u8BC1\\u4EE3\\u7801\\u7684\\u89C4\\u8303\\u662F\\u7B26\\u5408\\u56E2\\u961F\\u7684\\u3002\")), mdx(\"h3\", null, \"8\\u3001\\u5174\\u8DA3\\u548C\\u5929\\u8D4B\"), mdx(\"p\", null, \"\\u5F88\\u4E0D\\u60F3\\u8BF4\\uFF0C\\u4F46\\u662F\\u8FD8\\u662F\\u8981\\u8BF4\\uFF0C\\u5982\\u679C\\u4F60\\u4E0D\\u662F\\u5BF9\\u7F16\\u7A0B\\u3001\\u5BF9\\u4E1A\\u52A1\\u6709\\u5F88\\u5927\\u7684\\u5174\\u8DA3\\uFF0C\\u5F88\\u96BE\\u5728\\u7F16\\u7A0B\\u7684\\u80FD\\u529B\\u4E0A\\u6709\\u5F88\\u5927\\u7684\\u7CBE\\u8FDB\\u3002\\u56E0\\u4E3A\\u9700\\u8981\\u4F60\\u7E41\\u590D\\u7684\\u7EC3\\u4E60\\u3001\\u9700\\u8981\\u4F60\\u82B1\\u8D39\\u5F88\\u5927\\u4E00\\u90E8\\u5206\\u81EA\\u5DF1\\u7684\\u65F6\\u95F4\\uFF0C\\u4F60\\u4E0D\\u559C\\u6B22\\u7684\\u4E8B\\u60C5\\u5F88\\u96BE\\u575A\\u6301\\u4E0B\\u53BB\\u3002\"), mdx(\"p\", null, \"\\u8FD8\\u9047\\u5230\\u4E86\\u5F88\\u591A\\u4EBA\\uFF0C\\u82B1\\u8D39\\u4E86\\u5F88\\u591A\\u7684\\u8010\\u5FC3\\u6559\\u4ED6\\uFF0C\\u4F46\\u662F\\u603B\\u662F\\u6CA1\\u529E\\u6CD5\\u7406\\u89E3\\uFF0C\\u5750\\u5728\\u529E\\u516C\\u5BA4\\u7684\\u6548\\u7387\\u5C31\\u662F\\u51FA\\u5947\\u7684\\u4F4E\\uFF0C\\u5F88\\u7528\\u529F\\u52AA\\u529B\\u7684\\u4E0A\\u73ED\\uFF0C\\u57CB\\u6028\\u81EA\\u5DF1\\u4E3A\\u5565\\u5B66\\u4E0D\\u4F1A\\uFF0C\\u5176\\u5B9E\\u7B54\\u6848\\u5C31\\u662F\\u771F\\u7684\\u4E0D\\u5408\\u9002\\u3002\"), mdx(\"h2\", null, \"\\u603B\\u7ED3\"), mdx(\"p\", null, \"\\u5BF9\\u4E8E\\u5F88\\u591A\\u4EBA\\u7F16\\u7A0B\\u662F\\u4EBA\\u751F\\u7684\\u5F88\\u91CD\\u8981\\u7684\\u4E8B\\u4E1A\\uFF0C\\u53EF\\u80FD\\u8981\\u6301\\u7EED\\u5341\\u5E74\\u3001\\u4E8C\\u5341\\u5E74\\u3001\\u4E09\\u5341\\u5E74~\\uFF0C\\u600E\\u4E48\\u66F4\\u597D\\u7684\\u5B8C\\u6210\\u4EFB\\u52A1\\u5C31\\u662F\\u4EF7\\u503C\\u7684\\u4F53\\u73B0\\uFF0C\\u600E\\u4E48\\u5B8C\\u6210\\u4EFB\\u52A1\\u3001\\u600E\\u4E48\\u63D0\\u9AD8\\u80FD\\u529B\\u3001\\u600E\\u4E48\\u5B9E\\u73B0\\u4EF7\\u503C\\u3001\\u600E\\u4E48\\u8BA9\\u81EA\\u5DF1\\u66F4\\u597D\\u7684\\u5728\\u73B0\\u5B9E\\u751F\\u6D3B\\u5B58\\u5728\\uFF0C\\u662F\\u5F88\\u91CD\\u8981\\u7684\\u3002\\u597D\\u5728\\u6709\\u5F88\\u591A\\u4EBA\\u8D70\\u5728\\u8FD9\\u6761\\u8DEF\\u4E0A\\uFF0C\\u597D\\u5728\\u53EA\\u8981\\u52AA\\u529B\\u8FD8\\u662F\\u4F1A\\u6709\\u5F88\\u597D\\u7684\\u7ED3\\u679C\\u3002\"), mdx(\"hr\", null), mdx(\"br\", null), mdx(\"div\", null, mdx(\"div\", {\n    style: {\n      textAlign: 'center'\n    }\n  }, \"\\u66F4\\u591A\\u7684\\u8BD5\\u70BC\\u8BA9\\u81EA\\u5DF1\\u53D8\\u5F97\\u66F4\\u52A0\\u5F3A\\u5927\\u3002\")), mdx(\"div\", null, mdx(\"div\", {\n    style: {\n      textAlign: 'right'\n    }\n  }, \"\\u2014\\u2014 UBUG\")), mdx(\"hr\", null));\n}\n;\nMDXContent.isMDXComponent = true;"}},"pageContext":{"isCreatedByStatefulCreatePages":false,"id":"2a40922f-a2a5-561a-852a-dfd6aef75549","prev":{"fileAbsolutePath":"D:/ubug/storybook/content/blog/worst-debug/worst-debug.md","id":"d307ef63-3c14-5316-8266-9ca8976cb97f","parent":{"name":"worst-debug","sourceInstanceName":"blog"},"excerpt":"想分享的是一次哭笑不得的 debug 寻找记~，不是最傻的一次调试精力，但是找到问题最想摔键盘的一次，必须复盘下~~ 记录一次最失败的 debug 过程。 国庆 7 天长假回家归来后就遇到很多烦心事，好不容易来到心爱的工位前，打开电源，擦拭键盘，打开项目，启动开发环境....  飘红了~~  大意是找不到某个支持库，放到我现在马后炮就是两下鼠标的问题，当时却是一场疯狂的 debug 过程。现在总结下来犯了很多不应该的错误： 一、 问题复盘…","fields":{"title":"🐛 记录一次最失败的 debug 过程","slug":"/blog/worst-debug","description":"出现 bug 非常正常，但是 Debug 的过程中切忌浮躁、自以为是、胡乱猜测，其实你以为的并不对，反而让你一次一次的忽视简单的问题线索。","date":"2019-08-13","redirects":null,"datetime":"2019-08-13 12:04:51","categories":["code"],"series":null,"tags":["思考","调试"],"status":"online"},"frontmatter":{"published":null,"tags":["思考","调试"],"theme":null,"slug":"worst-debug","date":"2019-08-13 12:04:51"},"body":"const _excluded = [\"components\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\n/* @jsx mdx */\n\nconst _frontmatter = {\n  \"slug\": \"worst-debug\",\n  \"title\": \"🐛 记录一次最失败的 debug 过程\",\n  \"date\": \"2019-08-13 12:04:51\",\n  \"author\": \"Ubug\",\n  \"description\": \"出现 bug 非常正常，但是 Debug 的过程中切忌浮躁、自以为是、胡乱猜测，其实你以为的并不对，反而让你一次一次的忽视简单的问题线索。\",\n  \"categories\": [\"code\"],\n  \"tags\": [\"思考\", \"调试\"],\n  \"banner\": \"./banner.jpg\"\n};\nconst makeShortcode = name => function MDXDefaultShortcode(props) {\n  console.warn(\"Component \" + name + \" was not imported, exported, or provided by MDXProvider as global scope\");\n  return mdx(\"div\", props);\n};\nconst layoutProps = {\n  _frontmatter\n};\nconst MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  let {\n      components\n    } = _ref,\n    props = _objectWithoutProperties(_ref, _excluded);\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"hr\", null), mdx(\"blockquote\", null, mdx(\"p\", {\n    parentName: \"blockquote\"\n  }, \"\\u60F3\\u5206\\u4EAB\\u7684\\u662F\\u4E00\\u6B21\\u54ED\\u7B11\\u4E0D\\u5F97\\u7684 debug \\u5BFB\\u627E\\u8BB0~\\uFF0C\\u4E0D\\u662F\\u6700\\u50BB\\u7684\\u4E00\\u6B21\\u8C03\\u8BD5\\u7CBE\\u529B\\uFF0C\\u4F46\\u662F\\u627E\\u5230\\u95EE\\u9898\\u6700\\u60F3\\u6454\\u952E\\u76D8\\u7684\\u4E00\\u6B21\\uFF0C\\u5FC5\\u987B\\u590D\\u76D8\\u4E0B~~\")), mdx(\"hr\", null), mdx(\"p\", null, \"\\u8BB0\\u5F55\\u4E00\\u6B21\\u6700\\u5931\\u8D25\\u7684 debug \\u8FC7\\u7A0B\\u3002\"), mdx(\"p\", null, \"\\u56FD\\u5E86 7 \\u5929\\u957F\\u5047\\u56DE\\u5BB6\\u5F52\\u6765\\u540E\\u5C31\\u9047\\u5230\\u5F88\\u591A\\u70E6\\u5FC3\\u4E8B\\uFF0C\\u597D\\u4E0D\\u5BB9\\u6613\\u6765\\u5230\\u5FC3\\u7231\\u7684\\u5DE5\\u4F4D\\u524D\\uFF0C\\u6253\\u5F00\\u7535\\u6E90\\uFF0C\\u64E6\\u62ED\\u952E\\u76D8\\uFF0C\\u6253\\u5F00\\u9879\\u76EE\\uFF0C\\u542F\\u52A8\\u5F00\\u53D1\\u73AF\\u5883....\"), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \" \\u98D8\\u7EA2\\u4E86~~ \")), mdx(\"p\", null, \"\\u5927\\u610F\\u662F\\u627E\\u4E0D\\u5230\\u67D0\\u4E2A\\u652F\\u6301\\u5E93\\uFF0C\\u653E\\u5230\\u6211\\u73B0\\u5728\\u9A6C\\u540E\\u70AE\\u5C31\\u662F\\u4E24\\u4E0B\\u9F20\\u6807\\u7684\\u95EE\\u9898\\uFF0C\\u5F53\\u65F6\\u5374\\u662F\\u4E00\\u573A\\u75AF\\u72C2\\u7684 debug \\u8FC7\\u7A0B\\u3002\\u73B0\\u5728\\u603B\\u7ED3\\u4E0B\\u6765\\u72AF\\u4E86\\u5F88\\u591A\\u4E0D\\u5E94\\u8BE5\\u7684\\u9519\\u8BEF\\uFF1A\"), mdx(\"h2\", null, \"\\u4E00\\u3001 \\u95EE\\u9898\\u590D\\u76D8\"), mdx(\"h3\", null, \"1. \\u53CD\\u590D\\u81EA\\u4EE5\\u4E3A\\u662F\\u7684\\u7591\\u95EE\"), mdx(\"blockquote\", null, mdx(\"p\", {\n    parentName: \"blockquote\"\n  }, \"\\u4E0D\\u5E94\\u8BE5\\u554A\\uFF0C\\u4E4B\\u524D\\u8FD8\\u597D\\u597D\\u7684\\uFF0C\\u6CA1\\u52A8\\u554A~~~\")), mdx(\"p\", null, \"  \\u786E\\u5B9E\\u4EE3\\u7801\\u5728\\u8282\\u524D\\u662F\\u6CA1\\u95EE\\u9898\\u7684\\uFF0C\\u91CD\\u542F\\u540E\\u51FA\\u73B0\\u95EE\\u9898\\uFF0C\\u5F88\\u81EA\\u7136\\u7684\\u4F1A\\u8FD9\\u4E48\\u60F3\\u3002\"), mdx(\"p\", null, \"  \\u4F46\\u662F\\u5B9E\\u9645\\u4E0A\\u5E76\\u4E0D\\u662F\\u5168\\u90E8\\u9519\\u8BEF\\u90FD\\u662F\\u4EE3\\u7801\\u7684\\u95EE\\u9898\\uFF0C\\u4E00\\u4E2A\\u9879\\u76EE\\u5F00\\u53D1\\u8C03\\u8BD5\\u8FC7\\u7A0B\\u4E2D\\u4F9D\\u8D56\\u4E86\\u5F88\\u591A sdk\\u3001\\u672C\\u5730\\u73AF\\u5883\\u7B49\\uFF0C\\u5F88\\u591A\\u90FD\\u662F\\u6709\\u7248\\u672C\\u8981\\u6C42\\uFF0C\\u6BD4\\u5982\\u5355\\u5355\\u5F00\\u53D1 flutter \\u5C31\\u6D89\\u53CA\\u5230 Flutter SDK\\u3001Dart SDK\\u3001Shell\\u3001AS \\u7248\\u672C\\u8981\\u6C42\\u7B49\\uFF0C\\u8FD8\\u5305\\u62EC\\u5B89\\u5353\\u5957\\u4EF6 Android SDK\\u3001support \\u5305\\u3001JDK\\u3001Gradle\\u3001build-tools\\u3001platform-tools\\u7B49\\uFF0C\\u4E00\\u65E6\\u5176\\u4E2D\\u4F9D\\u8D56\\u53D8\\u52A8\\uFF0C\\u53EF\\u80FD\\u662F\\u5F00\\u53D1\\u8005\\u5DE5\\u5177\\u81EA\\u52A8\\u66F4\\u65B0\\u8BBE\\u7F6E\\uFF0C\\u4E5F\\u53EF\\u80FD\\u662F\\u81EA\\u5DF1\\u624B\\u52A8\\u5347\\u7EA7\\uFF0C\\u5F88\\u5BB9\\u6613\\u5BFC\\u81F4\\u9879\\u76EE\\u8DD1\\u4E0D\\u8D77\\u6765\\u3002\"), mdx(\"p\", null, \"  \\u6240\\u4EE5\\u4EE5\\u540E\\u5982\\u679C\\u51FA\\u73B0\\u95EE\\u9898\\uFF0C\\u6392\\u9664\\u4E86\\u81EA\\u5DF1\\u7F16\\u5199\\u7684\\u4EE3\\u7801\\u95EE\\u9898\\uFF0C\\u4E00\\u5B9A\\u8981\\u60F3\\u60F3\\u662F\\u4E0D\\u662F\\u67D0\\u4E2A\\u4F9D\\u8D56\\u5347\\u7EA7\\u6216\\u8005\\u4FEE\\u6539\\u4E86\\u3002\"), mdx(\"h3\", null, \"2. \\u575A\\u5B9A\\u4E0D\\u79FB\\u7684\\u76F8\\u4FE1\\u5F00\\u53D1\\u8005\\u5DE5\\u5177\\u6CA1\\u95EE\\u9898\"), mdx(\"blockquote\", null, mdx(\"p\", {\n    parentName: \"blockquote\"\n  }, \"\\u70B9\\u51FB\\u98D8\\u7EA2\\u5230\\u6846\\u67B6\\u4EE3\\u7801\\u4E2D\\uFF0C\\u5FC3\\u60F3\\u8FD9\\u5757\\u81EA\\u52A8\\u751F\\u6210\\u7684\\uFF0C\\u4E0D\\u4F1A\\u6709\\u95EE\\u9898\\u7684\\uFF0C\\u5411\\u4E0A\\u627E\\u627E\\u9519\\u8BEF Stack \\u4E5F\\u6CA1\\u4EC0\\u4E48\\u503C\\u5F97\\u770B\\u7684~~~ \\u5230\\u5E95\\u54EA\\u91CC\\u51FA\\u95EE\\u9898\\u4E86\\u554A\\uFF01\\uFF01\")), mdx(\"p\", null, \"  \\u770B\\u5230\\u98D8\\u7EA2\\u7684\\u65F6\\u5019\\uFF0C\\u95EE\\u9898\\u7684\\u5B9A\\u4F4D\\u662F\\u5F00\\u53D1\\u8005\\u5DE5\\u5177\\u81EA\\u52A8\\u751F\\u6210\\u7684\\u76EE\\u5F55\\u91CC\\uFF0C\\u4E0D\\u77E5\\u9053\\u4E3A\\u5565\\uFF0C\\u8111\\u888B\\u91CC\\u9ED8\\u8BA4\\u8FD9\\u5757\\u662F\\u6CA1\\u95EE\\u9898\\u7684\\uFF08\\u5176\\u5B9E\\u70B9\\u8FDB\\u53BB\\u80FD\\u770B\\u5230\\u51FA\\u9519\\u7684\\u5730\\u65B9\\uFF09\\uFF0C\\u6240\\u4EE5\\u6CA1\\u6709\\u4ECE\\u8FD9\\u5757\\u8BE6\\u7A76\\u3002\\u53CD\\u800C\\u66F4\\u52A0\\u786E\\u4FE1\\u662F\\u81EA\\u5DF1\\u7684\\u73AF\\u5883\\u95EE\\u9898\\u4E86\\u3002\"), mdx(\"p\", null, \"  \\u4ECE\\u8FD9\\u4E5F\\u80FD\\u63A8\\u65AD\\u51FA\\u6765\\uFF0C\\u7528\\u7684\\u4E00\\u4E9B\\u6BD4\\u8F83\\u70ED\\u95E8\\u7684\\u6846\\u67B6\\u3001\\u534F\\u4F5C\\u540C\\u4E8B\\u7684\\u8FD0\\u884C\\u4EE3\\u7801\\uFF0C\\u5176\\u5B9E\\u90FD\\u4F1A\\u6709\\u8FD9\\u4E2A\\u95EE\\u9898\\uFF0C\\u800C\\u5F88\\u591A\\u65F6\\u5019\\u8C03\\u8BD5\\u4E5F\\u9ED8\\u8BA4\\u8FD9\\u4E9B\\u4E1C\\u897F\\u6CA1\\u95EE\\u9898\\uFF0C\\u770B\\u6765\\u4EE5\\u540E\\u8FD8\\u662F\\u9700\\u8981\\u4FDD\\u7559\\u4E00\\u4E9B\\u8B66\\u89C9\\u7684\\u3002\"), mdx(\"h3\", null, \"3. \\u80E1\\u4E71\\u5C1D\\u8BD5\\uFF0C\\u671F\\u5F85\\u83AB\\u540D\\u5176\\u5999\\u7684\\u597D\"), mdx(\"blockquote\", null, mdx(\"p\", {\n    parentName: \"blockquote\"\n  }, \"\\u80AF\\u5B9A\\u662F\\u4E4B\\u524D\\u5347\\u7EA7\\u7684\\u95EE\\u9898\\uFF0C\\u6211\\u628A\\u5168\\u90E8\\u4F9D\\u8D56\\u4E5F\\u5347\\u7EA7\\u5230\\u6700\\u65B0\\u7684\\uFF0C\\u80AF\\u5B9A\\u6CA1\\u95EE\\u9898~~~\")), mdx(\"p\", null, \"  \\u5728\\u8BA4\\u4E3A\\u662F\\u81EA\\u5DF1\\u7684\\u73AF\\u5883\\u95EE\\u9898\\u4E4B\\u540E\\uFF0C\\u5728\\u4E0D\\u6E05\\u695A\\u95EE\\u9898\\u7684\\u60C5\\u51B5\\uFF0C\\u5C1D\\u8BD5\\u521B\\u5EFA\\u65B0\\u9879\\u76EE\\u6CA1\\u95EE\\u9898\\uFF0C\\u4E0D\\u540C\\u7684\\u65B0\\u9879\\u76EE\\u5F62\\u5F0F\\u4E5F\\u6CA1\\u95EE\\u9898\\uFF0C\\u7136\\u540E\\u5C31\\u5404\\u79CD\\u5347\\u7EA7\\u5230\\u6700\\u65B0\\u7248\\uFF0C\\u82B1\\u4E86\\u5F88\\u591A\\u65F6\\u95F4\\u6765\\u9A8C\\u8BC1\\u54EA\\u4E2A\\u73AF\\u5883\\u914D\\u7F6E\\u7684\\u95EE\\u9898\\uFF0C\\u6700\\u540E\\u5DEE\\u70B9\\u91CD\\u65B0\\u88C5\\u6574\\u4E2A Android \\u5F00\\u53D1\\u73AF\\u5883\\u3002\"), mdx(\"p\", null, \"  \\u8FD9\\u4E9B\\u90FD\\u662F\\u5728\\u5927\\u6982\\u77E5\\u9053\\u95EE\\u9898\\uFF0C\\u4F46\\u662F\\u4E0D\\u786E\\u5B9A\\uFF0C\\u7136\\u540E\\u80E1\\u4E71\\u5347\\u7EA7\\uFF0C\\u5C1D\\u8BD5\\u4E0D\\u540C\\u7684\\u4F9D\\u8D56\\u7248\\u672C\\uFF0C\\u671F\\u5F85\\u83AB\\u540D\\u5176\\u5999\\u7684\\u597D\\u3002\\u5C31\\u50CF\\u662F\\u4E0B\\u9762\\u7684\\u6F2B\\u753B\\u4F3C\\u7684\\uFF1A\"), mdx(\"p\", null, mdx(\"img\", {\n    parentName: \"p\",\n    \"src\": \"/53_run_result-321975062b336c5a79d7a15ca2ebd6d3.gif\",\n    \"alt\": \"运行结果\"\n  })), mdx(\"p\", null, \"  \\u770B\\u8D77\\u6765\\u5F88\\u641E\\u7B11\\uFF0C\\u4F46\\u662F\\u6709\\u65F6\\u5019\\u771F\\u7684\\u662F\\u8FD9\\u6837\\u7684\\u3002\"), mdx(\"h3\", null, \"4. \\u5206\\u4E0D\\u6E05\\u95EE\\u9898\\u8303\\u56F4\"), mdx(\"blockquote\", null, mdx(\"p\", {\n    parentName: \"blockquote\"\n  }, \"\\u89E3\\u51B3\\u4E0D\\u4E86\\uFF0C\\u53EA\\u80FD\\u641C\\u7D22\\u4E86~~~\")), mdx(\"p\", null, \"  \\u6280\\u672F\\u6808\\u95EE\\u9898\\u5206\\u4E0D\\u6E05\\uFF0C\\u8FD9\\u4E2A\\u9879\\u76EE\\u662F flutter \\u548C Android \\u6DF7\\u5408\\u7684\\uFF0CAndroid \\u90E8\\u5206\\u662F flutter sdk \\u8D1F\\u8D23\\uFF0C\\u6240\\u4EE5\\u641C\\u7D22\\u95EE\\u9898\\u7684\\u5173\\u952E\\u8BCD\\u4E00\\u76F4\\u60F3\\u7684\\u90FD\\u662F flutter + bug\\uFF0C\\u5176\\u5B9E\\u5E76\\u4E0D\\u662F\\uFF0C\\u5728\\u8FD9\\u5757\\u641C\\u7D22\\u4E0D\\u51FA\\u4EFB\\u4F55\\u6709\\u7528\\u7684\\u4E1C\\u897F\\u3002\"), mdx(\"h3\", null, \"5. \\u6D6E\\u8E81\\u8C03\\u8BD5\"), mdx(\"blockquote\", null, mdx(\"p\", {\n    parentName: \"blockquote\"\n  }, \"\\u9879\\u76EE\\u8FD9\\u4E48\\u7740\\u6025\\uFF0C\\u5C45\\u7136\\u8FD8\\u51FA\\u73B0\\u8FD9\\u4E2A\\u95EE\\u9898\\uFF0C\\u73B0\\u5728\\u6709\\u4E00\\u4E2A\\u4E34\\u65F6\\u89E3\\u51B3\\u65B9\\u6848\\uFF0C\\u62F7\\u8D1D\\u5230\\u522B\\u7684\\u9879\\u76EE\\u4E0B\\u53EF\\u4EE5\\u5F00\\u53D1\\uFF0C\\u4F46\\u662F\\u6CA1\\u6CD5\\u534F\\u4F5C\\uFF0C\\u4E0D\\u884C\\u53EA\\u80FD\\u6682\\u65F6\\u5148\\u9876\\u7740\\u4E86~~\")), mdx(\"p\", null, \"  \\u8C03\\u8BD5\\u7684\\u8FC7\\u7A0B\\u4E2D\\uFF0C\\u4E00\\u822C\\u7684\\u5C0F\\u95EE\\u9898\\u4E00\\u4E0B\\u80FD\\u770B\\u51FA\\u6765\\uFF0C\\u4E2D\\u7B49\\u95EE\\u9898\\u4E5F\\u5927\\u6982\\u6709\\u601D\\u8DEF\\uFF0C\\u6700\\u62C5\\u5FC3\\u7684\\u8C03\\u8BD5\\u662F\\u4E0D\\u77E5\\u9053\\u54EA\\u91CC\\u51FA\\u9519\\u4E86\\u7684\\u65F6\\u5019\\uFF0C\\u66F4\\u662F\\u82B1\\u4E86\\u5F88\\u591A\\u65F6\\u95F4\\u90FD\\u6CA1\\u6709\\u4EFB\\u4F55\\u5934\\u7EEA\\uFF0C\\u9879\\u76EE\\u8FDB\\u5EA6\\u803D\\u8BEF\\u5F88\\u591A\\uFF0C\\u5BFC\\u81F4\\u5FC3\\u6D6E\\u6C14\\u8E81\\u3002\"), mdx(\"p\", null, \"  \\u8FD9\\u4E2A\\u65F6\\u5019\\u5FC3\\u91CC\\u5C31\\u504F\\u5411\\u4E8E\\u66F4\\u591A\\u6BD4\\u5982\\u6682\\u65F6\\u53EF\\u7528\\u7684\\u65B9\\u6848\\uFF0C\\u53EF\\u80FD\\u4F1A\\u89E3\\u51B3\\u6682\\u65F6\\u7684\\u95EE\\u9898\\uFF0C\\u4F46\\u662F\\u540E\\u7EED\\u7684\\u5F00\\u53D1\\u80AF\\u5B9A\\u4F1A\\u53D7\\u5230\\u5F71\\u54CD\\u3002\"), mdx(\"h2\", null, \"\\u4E8C\\u3001 \\u66F4\\u597D\\u7684\\u505A\\u6CD5\"), mdx(\"p\", null, \"\\u8C03\\u8BD5 bug \\u5C31\\u50CF\\u662F\\u8C03\\u67E5\\u4E00\\u4E2A\\u6848\\u4EF6\\uFF0C\\u4ECE\\u7EBF\\u7D22\\u5165\\u624B\\uFF0C\\u63A8\\u65AD\\u95EE\\u9898\\u6240\\u5728\\uFF0C\\u800C\\u4E0D\\u662F\\u60F3\\u5F53\\u7136\\u7684\\u8BA4\\u4E3A\\u8C01\\u662F\\u51F6\\u624B\\uFF0C\\u7136\\u540E\\u5211\\u8BAF\\u903C\\u4F9B\\u3002\"), mdx(\"ol\", null, mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"\\u7B2C\\u4E00\\u65F6\\u95F4\\u4ECE\\u6700\\u5F00\\u59CB\\u7684\\u9519\\u8BEF\\u5F00\\u59CB\\u6392\\u67E5\\uFF0C\\u4E0D\\u7528\\u5C4F\\u853D\\u4E0D\\u719F\\u6089\\u7684\\u4EE3\\u7801\\uFF1B\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"\\u65E0\\u8BBA\\u662F\\u5F00\\u53D1\\u8005\\u5DE5\\u5177\\u751F\\u6210\\u3001\\u6846\\u67B6\\u7684\\u4EE3\\u7801\\u8FD8\\u662F\\u81EA\\u5DF1\\u7684\\u4EE3\\u7801\\uFF0C\\u90FD\\u7167\\u67E5\\u4E0D\\u8BEF\\uFF1B\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"\\u5728\\u590D\\u6742\\u4F9D\\u8D56\\u7684\\u73AF\\u5883\\u4E0B\\uFF0C\\u4E0D\\u786E\\u5B9A\\u95EE\\u9898\\u7684\\u65F6\\u5019\\u4E0D\\u8981\\u82B1\\u592A\\u591A\\u65F6\\u95F4\\u5C1D\\u8BD5\\u4E0D\\u786E\\u5B9A\\u7684\\u89E3\\u51B3\\u529E\\u6CD5\\u6765\\u80E1\\u4E71\\u5C1D\\u8BD5\\uFF1B\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"\\u95EE\\u9898\\u6CA1\\u6709\\u601D\\u8DEF\\u7684\\u65F6\\u5019\\u679C\\u65AD\\u8BF7\\u6C42\\u540C\\u4E8B\\u4ECE\\u4E0D\\u540C\\u89D2\\u5EA6\\u63D0\\u4F9B\\u5EFA\\u8BAE\\uFF0C\\u534F\\u52A9\\u8C03\\u8BD5\\uFF1B\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"\\u65E0\\u8BBA\\u82B1\\u591A\\u957F\\u65F6\\u95F4\\uFF0C\\u4FDD\\u6301\\u60C5\\u7EEA\\u7A33\\u5B9A\\uFF0C\\u4E2D\\u65AD\\u4F11\\u606F\\u7B49\\u65B9\\u5F0F\\uFF0C\\u4FDD\\u6301\\u81EA\\u5DF1\\u7684\\u72B6\\u6001\\uFF1B\")), mdx(\"p\", null, mdx(\"figure\", {\n    parentName: \"p\",\n    \"className\": \"gatsby-resp-image-figure\",\n    \"style\": {}\n  }, \"\\n    \", mdx(\"span\", {\n    parentName: \"figure\",\n    \"className\": \"gatsby-resp-image-wrapper\",\n    \"style\": {\n      \"position\": \"relative\",\n      \"display\": \"block\",\n      \"marginLeft\": \"auto\",\n      \"marginRight\": \"auto\",\n      \"maxWidth\": \"1035px\"\n    }\n  }, \"\\n      \", mdx(\"a\", {\n    parentName: \"span\",\n    \"className\": \"gatsby-resp-image-link\",\n    \"href\": \"/static/40551b3e11ff1593a6736d3f0533700c/28bb1/sherlock.jpg\",\n    \"style\": {\n      \"display\": \"block\"\n    },\n    \"target\": \"_blank\",\n    \"rel\": [\"noopener\"]\n  }, \"\\n    \", mdx(\"span\", {\n    parentName: \"a\",\n    \"className\": \"gatsby-resp-image-background-image\",\n    \"style\": {\n      \"paddingBottom\": \"62.54826254826254%\",\n      \"position\": \"relative\",\n      \"bottom\": \"0\",\n      \"left\": \"0\",\n      \"backgroundImage\": \"url('data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAANABQDASIAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAMEBv/EABQBAQAAAAAAAAAAAAAAAAAAAAD/2gAMAwEAAhADEAAAAc/TOwUAf//EABkQAAIDAQAAAAAAAAAAAAAAAAMQAAExE//aAAgBAQABBQKFHzVbq//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQMBAT8BP//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQIBAT8BP//EABgQAAIDAAAAAAAAAAAAAAAAAAABESAh/9oACAEBAAY/AhbNf//EABoQAQACAwEAAAAAAAAAAAAAAAERMQAQIUH/2gAIAQEAAT8hLw4otJ55qjCw6//aAAwDAQACAAMAAAAQiA//xAAVEQEBAAAAAAAAAAAAAAAAAAAQEf/aAAgBAwEBPxCn/8QAFREBAQAAAAAAAAAAAAAAAAAAEBH/2gAIAQIBAT8Qh//EABoQAQACAwEAAAAAAAAAAAAAAAERoQAQIXH/2gAIAQEAAT8QAgWCe4hDlKhp1cxxJxl8df/Z')\",\n      \"backgroundSize\": \"cover\",\n      \"display\": \"block\"\n    }\n  }), \"\\n  \", mdx(\"img\", {\n    parentName: \"a\",\n    \"className\": \"gatsby-resp-image-image\",\n    \"alt\": \"来自夏洛克的凝视\",\n    \"title\": \"来自夏洛克的凝视\",\n    \"src\": \"/static/40551b3e11ff1593a6736d3f0533700c/dcf47/sherlock.jpg\",\n    \"srcSet\": [\"/static/40551b3e11ff1593a6736d3f0533700c/fca29/sherlock.jpg 259w\", \"/static/40551b3e11ff1593a6736d3f0533700c/f4507/sherlock.jpg 518w\", \"/static/40551b3e11ff1593a6736d3f0533700c/dcf47/sherlock.jpg 1035w\", \"/static/40551b3e11ff1593a6736d3f0533700c/cd483/sherlock.jpg 1553w\", \"/static/40551b3e11ff1593a6736d3f0533700c/e222b/sherlock.jpg 2070w\", \"/static/40551b3e11ff1593a6736d3f0533700c/28bb1/sherlock.jpg 2560w\"],\n    \"sizes\": \"(max-width: 1035px) 100vw, 1035px\",\n    \"style\": {\n      \"width\": \"100%\",\n      \"height\": \"100%\",\n      \"margin\": \"0\",\n      \"verticalAlign\": \"middle\",\n      \"position\": \"absolute\",\n      \"top\": \"0\",\n      \"left\": \"0\"\n    },\n    \"loading\": \"lazy\"\n  }), \"\\n  \"), \"\\n    \"), \"\\n    \", mdx(\"figcaption\", {\n    parentName: \"figure\",\n    \"className\": \"gatsby-resp-image-figcaption\"\n  }, \"\\u6765\\u81EA\\u590F\\u6D1B\\u514B\\u7684\\u51DD\\u89C6\"), \"\\n  \")));\n}\n;\nMDXContent.isMDXComponent = true;"},"next":{"fileAbsolutePath":"D:/ubug/storybook/content/blog/leet-code/reduce.md","id":"df7df5c2-0af9-5201-8e5d-6635721528ee","parent":{"name":"reduce","sourceInstanceName":"blog"},"excerpt":"1. Reduce js 中一般很少用（至少之前我很少用到）的一个内置函数。 reduce 在数组上带有一个迭代值的遍历。接受四个参数：初始值（或者上一次回调函数的返回值），当前元素值，当前索引，数组本身。 语法: 用法 最简单的应用就是累加： 自带一个可以初始化的迭代值，所以不需要循环、不需要单独创建变量，所以代码非常简洁。类似的需要一个初始值的遍历，用 reduce 会很简洁，不仅仅是累加这种。 以上的例子基本上都是需要一个初始值，然后迭代返回这个值的套路，reduce…","fields":{"title":"😄 reduce 函数","slug":"/blog/reduce","description":"js 中一般很少用（至少之前我很少用到）的一个内置函数，趁着有时间深入了解下。","date":"2019-07-31","redirects":null,"datetime":"2019-07-31 21:09:13","categories":["algorithm"],"series":null,"tags":["功能","技巧"],"status":"online"},"frontmatter":{"published":null,"tags":["功能","技巧"],"theme":null,"slug":"reduce","date":"2019-07-31 21:09:13"},"body":"const _excluded = [\"components\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\n/* @jsx mdx */\n\nconst codeStr_reduce = \"\\nfunction collectHeightMap(heights) {\\n  return heights.reduce((hMap, h) => ((hMap[h] = hMap[h] ? (hMap[h] + 1) : 1), hMap), {});\\n}\\nreturn collectHeightMap;\";\nconst _frontmatter = {\n  \"slug\": \"reduce\",\n  \"title\": \"😄 reduce 函数\",\n  \"date\": \"2019-07-31 21:09:13\",\n  \"author\": \"Ubug\",\n  \"description\": \"js 中一般很少用（至少之前我很少用到）的一个内置函数，趁着有时间深入了解下。\",\n  \"categories\": [\"algorithm\"],\n  \"tags\": [\"功能\", \"技巧\"],\n  \"banner\": \"./banner.jpg\"\n};\nconst makeShortcode = name => function MDXDefaultShortcode(props) {\n  console.warn(\"Component \" + name + \" was not imported, exported, or provided by MDXProvider as global scope\");\n  return mdx(\"div\", props);\n};\nconst layoutProps = {\n  codeStr_reduce,\n  _frontmatter\n};\nconst MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  let {\n      components\n    } = _ref,\n    props = _objectWithoutProperties(_ref, _excluded);\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"h2\", null, \"1. Reduce\"), mdx(\"p\", null, \"js \\u4E2D\\u4E00\\u822C\\u5F88\\u5C11\\u7528\\uFF08\\u81F3\\u5C11\\u4E4B\\u524D\\u6211\\u5F88\\u5C11\\u7528\\u5230\\uFF09\\u7684\\u4E00\\u4E2A\\u5185\\u7F6E\\u51FD\\u6570\\u3002\"), mdx(\"p\", null, \"reduce \\u5728\\u6570\\u7EC4\\u4E0A\\u5E26\\u6709\\u4E00\\u4E2A\\u8FED\\u4EE3\\u503C\\u7684\\u904D\\u5386\\u3002\\u63A5\\u53D7\\u56DB\\u4E2A\\u53C2\\u6570\\uFF1A\\u521D\\u59CB\\u503C\\uFF08\\u6216\\u8005\\u4E0A\\u4E00\\u6B21\\u56DE\\u8C03\\u51FD\\u6570\\u7684\\u8FD4\\u56DE\\u503C\\uFF09\\uFF0C\\u5F53\\u524D\\u5143\\u7D20\\u503C\\uFF0C\\u5F53\\u524D\\u7D22\\u5F15\\uFF0C\\u6570\\u7EC4\\u672C\\u8EAB\\u3002\"), mdx(\"p\", null, \"\\u8BED\\u6CD5:\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-javascript\"\n  }, \"// lastReturn \\uFF08\\u4E0A\\u4E00\\u6B21\\u8C03\\u7528\\u56DE\\u8C03\\u8FD4\\u56DE\\u7684\\u503C\\uFF0C\\u6216\\u8005\\u662F\\u63D0\\u4F9B\\u7684\\u521D\\u59CB\\u503C\\uFF08initialValue\\uFF09\\uFF09\\n// currentValue \\uFF08\\u6570\\u7EC4\\u4E2D\\u5F53\\u524D\\u88AB\\u5904\\u7406\\u7684\\u5143\\u7D20\\uFF09\\n// index \\uFF08\\u5F53\\u524D\\u5143\\u7D20\\u5728\\u6570\\u7EC4\\u4E2D\\u7684\\u7D22\\u5F15\\uFF09\\n// array \\uFF08\\u8C03\\u7528 reduce \\u7684\\u6570\\u7EC4\\uFF09\\n// initialValue \\uFF08\\u4F5C\\u4E3A\\u7B2C\\u4E00\\u6B21\\u8C03\\u7528 callback \\u7684\\u7B2C\\u4E00\\u4E2A\\u53C2\\u6570\\u3002\\uFF09\\narr.reduce((lastReturn, currentValue, index, array) => nextReturn, initialValue)\\n\")), mdx(\"h3\", null, \"\\u7528\\u6CD5\"), mdx(\"p\", null, \"\\u6700\\u7B80\\u5355\\u7684\\u5E94\\u7528\\u5C31\\u662F\\u7D2F\\u52A0\\uFF1A\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-javascript\"\n  }, \"([1, 2, 3, 4, 5]).reduce((sum, val) => sum + val, 0);\\n\")), mdx(\"p\", null, \"\\u81EA\\u5E26\\u4E00\\u4E2A\\u53EF\\u4EE5\\u521D\\u59CB\\u5316\\u7684\\u8FED\\u4EE3\\u503C\\uFF0C\\u6240\\u4EE5\\u4E0D\\u9700\\u8981\\u5FAA\\u73AF\\u3001\\u4E0D\\u9700\\u8981\\u5355\\u72EC\\u521B\\u5EFA\\u53D8\\u91CF\\uFF0C\\u6240\\u4EE5\\u4EE3\\u7801\\u975E\\u5E38\\u7B80\\u6D01\\u3002\\u7C7B\\u4F3C\\u7684\\u9700\\u8981\\u4E00\\u4E2A\\u521D\\u59CB\\u503C\\u7684\\u904D\\u5386\\uFF0C\\u7528 reduce \\u4F1A\\u5F88\\u7B80\\u6D01\\uFF0C\\u4E0D\\u4EC5\\u4EC5\\u662F\\u7D2F\\u52A0\\u8FD9\\u79CD\\u3002\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-javascript\"\n  }, \"// \\u6C42\\u6570\\u7EC4\\u6700\\u5927\\u503C\\n([1, 2, 3, 4, 5]).reduce((max, val) => Math.max(max, val), -Infinity);\\n// \\u8FD4\\u56DE\\u4E00\\u4E2A\\u5076\\u6570\\u65B0\\u6570\\u7EC4\\n([1, 2, 3, 4, 5]).reduce((ary, val) => val % 2 === 0 && ary.push(val), []);\\n// \\u6570\\u7EC4\\u8F6C\\u5BF9\\u8C61\\n([1, 2, 3, 4, 5]).reduce((obj, val, index) => ((obj[index] = val), obj), {});\\n// \\u4E8C\\u7EF4\\u6570\\u7EC4\\u8F6C\\u4E00\\u7EF4\\n([[1, 2, 8], [3, 4, 9], [5, 6, 10]]).reduce((ary, val) => ary.concat(val), []);\\n\")), mdx(\"p\", null, \"\\u4EE5\\u4E0A\\u7684\\u4F8B\\u5B50\\u57FA\\u672C\\u4E0A\\u90FD\\u662F\\u9700\\u8981\\u4E00\\u4E2A\\u521D\\u59CB\\u503C\\uFF0C\\u7136\\u540E\\u8FED\\u4EE3\\u8FD4\\u56DE\\u8FD9\\u4E2A\\u503C\\u7684\\u5957\\u8DEF\\uFF0Creduce \\u975E\\u5E38\\u9002\\u5408\\u8FD9\\u79CD\\u573A\\u666F\\u3002\"), mdx(\"h3\", null, \"\\u4EE3\\u7801\\u6D4B\\u8BD5\"), mdx(\"p\", null, \"\\u7EDF\\u8BA1\\u73ED\\u7EA7\\u91CC\\u9762\\u5404\\u4E2A\\u5E74\\u9F84\\u7684\\u4EBA\\u6570\\uFF1A\"), mdx(LeetCodePlayground, {\n    height: 160,\n    codeStr: codeStr_reduce,\n    inputs: [[12, 14, 15, 12], [12, 14, 15, 12, 14, 14, 13, 14, 15, 14, 13, 12, 11, 16, 12, 12, 14, 12, 11]],\n    inputStrs: [\"[12,14,15,12]\", \"[12,14,15,12,14,14,13,14,15,14,13,12,11,16,12,12,14,12,11]\"],\n    times: 10000,\n    output: result => Object.keys(result).map(height => \"[\".concat(height, \"]\\xD7\").concat(result[height], \"\\u4EBA\")).join(', '),\n    mdxType: \"LeetCodePlayground\"\n  }));\n}\n;\nMDXContent.isMDXComponent = true;"}}}}